一、SQL简介
SQL:Structured Query Languagege 结构化的查询语言,用来对数据库进行查询、更新和管理的一种特殊的语言。DML是SQL语言的核心。
包含三个部分:
DML
Data Manipulation language数据操纵语言
用于检索或更新数据库表:insert、delete、update、select增删改查
DDL
Data Defination language数据定义语言用于定义的数据的结构:create alter drop
DCL
Data Control language数据控制语言
用于定义数据库用户的权限:grant revoke
二、表和库的管理
1.数据类型
整数型:smallint、int bigint
小数型:float、double
日期时间:date、time、datetime、timestamp
字符串:varchar、char、text
其他:clob存储文本大数据
blod存储二进制大数据
2.创建表
语法:
create table 表名 列名 数据类型 特征,-- 字段名 属性名 列名 数据类型 特征, 列名 数据类型 特征 ):

示例:
create table t user id int, username varchar(20),, password varchar(5e)
create table t student id int primary key auto_increment,-- 将id设为主键 自动增长 默认 从1开始,每次递增 name varchar(10) not null, -- 不允许为空 age int, sex varchar(8) not null default ‘男’,-- 指定默认值 address varchar(100), height double, birthday date )charset=utf8;I
insert into t_student(name, age, sex, birthday, height) values('张无忌',21, '男’,'2002-10-9', 176.3); insert into t_student(name, age, birthday, height) values('张三丰', 21, 12002-10-9', 176.3); insert into t_student(name, age, sex) values(null, 22,'女‘); insert into t_student values('钱多多’,20,'女','南京’,172.1, now());



3.修改表
添加列
语法:alter table 表名 add 列名 数据类型;

示例:
在t-student表中增加1名为weight体重字段,类型为双精度
alter table t_student add weight double;

修改列的类型
语法:
alter table 表名 modify 列名 新数据类型;

示例:
将t-student表中name姓名字段的宽度修改为250。
alter table t_student modify name varchar(250);

修改列名
alter table 表名 change 原列名 新列名 数据类型;

示例:
将t-student表中的sex字段修改为gender。
alter table t_student change sex gender varchar(8);

删除列
语法:alter table 表名 drop 列名;

示例:
删除t-student表中的weight列(字段)。
alter table t_student drop weight;

修改表名
语法:
alter table 原表名 rename 新表名; 或 rename table 原表名 to 新表名;

示例:
将t-student表名修改为student。
alter table t_student rename student;

4.删除表
语法:
drop table 表名; drop table if exists 表名;

示例:
删除test数据库中的t-user表?
drop table t_user; drop table if exists t_user;

5、截断表
清空表中的数据,作法类似于无条件的delete语句
语法:
truncate table 麦名;

示例:
truncate table t student; select * from t student; insert into t_student(name, gender) values('tom','男');insert into t_student(name, gender) values('mike','女');select * from t_student;

delete与truncate的区别:
- delete会记录日志,所以速度慢,而truncate不记录日志,清空表并释放资源,速度快
- delete可以指定条件只删除部分数据,而truncate只能用来清空表中所有数据
- delete不会将自动增长列归零,而truncate会使自动增长的列如id列归零
6.创建库
语法:
create database 数据库名 charset utf8; create database if not exists 数据库名 charset utf8;

示例:
create database if not exists shop charset utf8;

7、删除库
语法:
drop database 数据库名; drop database if exists 数据库名

示例:
drop database if exists shop;