一、DDL操作
1.创建数据库:
- create database 数据库名; —— 创建指定数据库
- create database if not exists 数据库名; —— 如果指定数据库不存在则创建
- create database if not exists 数据库名 default charset utf8; —— 创建数据库的时候设置字符编码为utf-8,支持中文输入
注意:SQL语句中不区分大小写,且设置字符编码的时候utf和8之间不需要用横杠连接。
2.删除数据库:
drop database 数据库名; —— 删除指定数据库
drop database if exists 数据库名; —— 如果存在则删除数据库
3.使用/切换数据库:
use 数据库名;
4.创建表:
create table 表名 (字段名1 类型1 ,字段名2 类型2,...);
-
a.表名一般需要加前缀‘t’或者‘tb’
例如:
create table t_students;
-
b.字段用来确定表中要存储哪些数据,字段名随便命名但是不能是关键字
常用数据类型:int—整数,char(数字)—定长字符串,varchar(数字)—不定长字符串,text—字符串(最长255字符),bit—布尔,date—日期,float(size,d)—这里的size和d都有约束效果。
例如:
create table t_students1(stuid int, stuname varchar(数字), gender bit,birth date)
常用约束:not null—不能为空,default—设置默认值,unique—值是唯一的
主键约束:primary key(字段名)—主键约束,指的是表中能够唯一标识一条记录的字段,即通过主键值找到表中唯一一条记录
自动增长:auto_increment—被设置的那个字段会随着添加而值自动增长,也就是说被设置的字段的值是唯一的,即这个字段设置了主键约束且这个字段的类型为整型才可以
注意:一个字段可以添加多个约束,多个约束之间用空格隔开
5.修改表
- 添加字段:alter table 表名 add column 字段名 字段类型 约束;
- 删除字段:alter table 表名 drop column 字段名;
二、DML(数据操作语言)
主要针对数据库中数据的增、删、改、查
1.插入数据/记录:
- 语法1:依次给表中的字段赋值
insert into 表名 values(值1, 值2, 值3...)
- 语法2:按照顺序给指定的字段赋指定的值(可以不给所有字段都赋值)
insert into 表名(字段1,字段2,字段3...) values(值1, 值2, 值3...)
- 值的问题:sql中对应的值是数字直接写,字符串需要用单引号或者双引号括起来,bit类型的值只有0和1,时间的内容可以是满足时间格式或者通过时间函数获取的值
- 时间函数:
now()—当前时间
year()—当前年份
month()—当前月份
date(now())—获取当前时间(推荐使用)
2.删除数据/记录
- 语法1:删除指定表中所有记录
delete from 表名;
- 语法2:删除满足条件的记录
delete from 表名 where 条件语句;
- SQL中的条件语句:
① = :判断是否相等
②<>:不等于
③ < :小于
④ > :大于
⑤<=:小于等于
⑥>=:大于等于
3.修改数据/记录
- 语法1:将指定表中指定列的所有值修改为新值
update 表名 set 字段1=新值1 字段2=新值2...;
- 语法2:将指定表中满足条件的指定行的值修改为新值
update 表名 set 字段1=新值1 字段2=新值2 ... where 条件语句;
- 语法3:将以指定字符开头的字段的值修改为新值
update 表名 set 字段=新值 where 字段 like '字符%';
通配符(只针对字符串有效)
%:表示任意个数的任意字符(包括0)
_ :表示一个任意字符
4.获取数据
- a.直接查询:获取所有数据
select * from 表名;
- b.获取指定表中字段对应的指定列的数据
select 字段1,字段2 from 表名;
- c.获取指定表中满足条件的所有数据
select * from 表名 where 条件语句;
5.列重命名
-
a.给查询结果中指定的字段重命名(可以部分重命名也可以全部重命名)
select 字段1 as 新字段1,字段2 as 新字段2... from 表名;
注意:这里的as可以省略,但是不推荐省略 -
b.查询指定字段,并且判断字段对应的值是0还是1,是1则结果为值1,否则为值2,且字段名为新字段名
MySQL写法:
select if(字段名,值1,值2) as 新字段名 from 表名;
通用写法:
select case 字段 when 1 then 值1 else 值2 end as 新字段名 from 表名;
6.对列进行合并
将指定的字段合并
select concat(字段1,字段2...) from 表名;
注意:数字和字符串数据可以合并,bit类型的数据不可以合并
7.模糊查询
即查询的时候通过like条件来指定查询对象。
sql中支持逻辑运算符and(逻辑与运算)和or(逻辑或运算),not(逻辑非运算)
select * from 表名 where 字段 like '%%' or 条件语句
8.排序
- 按照指定字段的值对查询结果进行升序排序
select * from 表名 order by 字段;
- 按照指定字段的值对查询结果进行降序排序
select * from 表名 order by 字段 desc;
- 联排:先对查询结果按照指定字段1的排序方式进行排序,然后再对字段2按照指定排序方式排序,越在前面的字段优先级越高。
select * from 表名 order by 字段1 asc, 字段2 desc...;
9.限制
- 获取指定数量条的查询结果
select * from 表名 limit 数字;
- 跳过前M条查询结果,取后面的N条查询
select * from 表名 limit N offset M;
网友评论