以;结尾
不区分大小写
可以包含空格和换行
查询所有数据库- show databases;
- craete database 数据库库名 charset = utf8/gbk;
- show create database 数据库名;
显示的是创建该数据库时所设置的一些信息
删除数据库- drop database 数据库名;
使用数据库,在执行表和数据相关的SQL语句之前必须使用了某一个数据库,否则会报错,
语句为 use 数据库名 当使用一些图形化工具时,可以直接点击对应的数据库进行连接.
查询某一个数据库所有的表- show tables;
- create table 表名 (字段1 类型, 字段2 类型.....)charset=utf8/gbk;
create table student(name varchar(50),chinese int,math int,english int)charset=gbk;查看表信息
- show create table 表名;
创建表时的信息
删除表- drop table 表名;
- rename table 原名 to 新名;
- desc 表名; desc = description 描述
注:查看结果为表段的名字以及数据类型,默认要求之类的一些信息
添加表字段- alter table 表名 add 字段名 类型; 默认加在表字段的最后一个
- alter table 表名 add 字段名 类型 first; 添加到第一个
- alter table 表名 add 字段名 类型 after xxx; 在xxx字段后面添加
- alter table 表名 drop 字段名;
- alter table 表名 change 原名 新名 新类型;
- insert into 表名 values (值1,值2,......); 全表插入格式,就是表的所有字段都会添加数据
注:一般不推荐使用,因为要输入所有的字段的对应信息,不能为空,否则报错
- insert into 表名(字段1名,字段2名) values (值1,值2);
注:推荐使用这种,可以插入指定字段的信息,未填写部分会写默认值
- 批量插入数据: insert into 表名 (字段1名,字段2名...) values (值1,值2....), (值1,值2....), (值1,值2....)...
- select 字段信息 from 表名 where 条件; 例如
select name from person; select name,age from person; 当字段信息换为 * 时,去掉后面的where查询的就是表的所有信息 select * from person; select name from person where age=28; select * from person where name='刘德华';
修改数据 - update 表名 set 表字段1 =值,表字段2=值 where 条件;
update person set name="杰瑞" where name='Jerry'; 可以使用两个不同的表字段 update person set age=50 where name="aa";删除数据
- delete from 表名 where 条件;
delete from person where age=88; delete from person where age>10;数据类型
整数: int(m) 和 bigint(m) , bigint等效java中的long, m代表显示长度,举例m=5,存18 查询到 00018 , 需要补零的话必须使用zerofill关键字
create table t1(age int(5) zerofill); insert into t1 values(18); select * from t1;
浮点数: double(m,d) m代表总长度,d代表小数长度 54.432 m=5 d=3
create table t2(price double(5,3)); insert into t2 values(45.2312312123); insert into t2 values(455.231); //报错
字符串
- char(m): 固定长度字符串 , m=5 存abc 占5个字符长度 , 应用场景: 当存储长度固定时,比如存储性别char(1) , 最大字符长度255
- varchar(m):可变长度字符串, m=5 存abc 占3个字符长度, 最大值65535但是建议保存255以内长度的数据
- text(m):可变长度字符串, 最大值65535 建议保存长度大于255的数据
日期
- date: 只能保存年月日
- time: 只能保存时分秒
- datetime: 保存年月日时分秒, 最大值9999-12-31, 默认值为null
- timestamp(时间戳:保存1970年1月1日到现在的毫秒数):保存年月日时分秒, 最大值2038-1-19 , 默认值为当前系统时间(当赋值为null时触发默认值)
create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);
insert into t_date values("2022-06-09",null,null,null);
insert into t_date values(null,"16:16:20","2011-11-22 10:20:30",null);
select * from t_date;
主键约束+自增 primary key auto_increment
- 约束: 创建表时给表字段添加的限制条件
- 主键: 表示数据唯一性的字段称为主键
- 主键约束: 限制主键的值唯一且非空
- 当字段设置为自增后 插入null值时会触发自增
- 自增规则: 从历史最大值+1



