1. SQL关键字用法

1.1 distinct 去重复

  1. 用法 select distinct name from t_user;

1.2 Where 条件查询

  1. where 条件查询 可以使用运算符
  2. 可以使用 between 在某个范围内
  3. 查询 t_user表中的 年龄15-30 之间的值
  4. 用法 select * from t_user where age between 15 and 30;
  5. like 模糊查询
  6. % 表示多个字值,_ 下划线表示一个字符;
  7. M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  8. %M% : 表示查询包含M的所有内容。
  9. %M_ : 表示查询以M在倒数第二位的所有内容。
  10. 查询 t_user表中name 包含姓李的内容
  11. 用法 select * from t_user where name like '李%';
  12. in 指定针对某个列的多个可能值
  13. 查询 t_user表中年龄等于 253040的值
  14. 用法 select * from t_user where age in (25,30,40)
  15. and 第一个条件和第二个条件都成立,则 and 显示一条记录
  16. 查询 t_user 表中年龄在20-30之间的女性 25-30之间的男性
  17. select age,sex from t_user
  18. age between 20 and 30 and sex = '女'
  19. or age between 25 and 30 and sex = '男'
  20. or 第一个和第二个条件只要有一个成立,则 or 显示一条记录
  21. 查询 t_user表中年龄大于30岁的(不包括30)名字姓王的人
  22. select age,name from t_user where age>30 or name like '王%'

1.3 order by 关键字

  1. order by 用于对结果集按照一个列或者多个列进行排序 默认是升序排序,如果需要倒序则要配合 desc 使用
  2. 查询 姓名和年龄 年龄要排序
  3. select name,age from t_user order by age
  4. order by desc 对结果集进行倒序排序
  5. 查询 所有的姓名,年龄。排序,年龄要倒序
  6. select name,age from t_user order by age desc;
  7. order by 多列
  8. 查询所有的信息 年龄和姓名列排序
  9. select name,age from t_user order by name,age

1.4 insert into 新增

  1. insert into 向表中插入新数据 id 自增
  2. 有两种写法
  3. 第一种写法
  4. insert into t_user values (值1,值2,值3 ....)
  5. insert into t_user values ('张三',20,1.73)
  6. 第二种写法
  7. insert into t_user (字段1,字段2..) values (值1,值2)
  8. insert into t_user (name,age,height) values ('张三',20,1.73)

1.5 update 修改

  1. update 用于修改表中已经存在的内容
  2. 修改id = 3 的姓名 年龄 身高
  3. update t_user set name = '张山',age = 20, height = 1.79 where id = 3

1.6 delete 删除

  1. delete 用于删除表中的行
  2. 根据id = 3 进行删除的操作
  3. delete from t_name where id = 3;

1.7 select limit 限制查询

  1. 查询前两条数据
  2. select name,age from user limit 2

1.8 通配符

  1. 1. % 代替0个或者多个字符
  2. 2. _ 替代一个字符
  3. 3. [charlist] 字符列中任何单一字符
  4. 4. [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符

1.9 SQL 别名

  1. 把列起别名
  2. name 变成 tname
  3. select name as tname from t_user
  4. 把表起别名
  5. select name(s) from t_user as t_name

2.0 连接 JOIN

  1. 把两个表或者多个表结合起来
  2. 语法
  3. select user.name,user.age,student.address,student.height from t_user inner join t_student on t_user.id = t_student.id
  4. inner join : 如果表中有至少一个匹配,则返回行
  5. left join : 即使右表没有匹配,也从左表返回所有的行
  6. right join : 即使左表没有匹配,也从右表返回所有的行
  7. full join : 只要其中一个表中存在匹配,则返回行

2.1 LEFT JOIN 左连接

  1. LEFT Join 从左表返回所有的行,即使右表中没有匹配,也会返回左边的内容,如果右表没有匹配则返回Null
  2. 语法有两种
  3. 1. select name,age from t_user left join t_student on t_user.name=t_student.name
  4. 2. select name,age from t_user left outer join t_student on t_user.name=t_student.name

2.2 Right Join 右连接

  1. Right Join 从右表返回所有的行,即使左表中没有匹配,也会返回右边的内容,如果左表没有匹配则返回Null
  2. 语法有两种
  3. 1. select name,age from t_user right join t_student on t_user.name=t_student.name
  4. 2. select name,age from t_user right outer join t_student on t_user.name=t_student.name

2.3 Inner Join

  1. inner join 关键字在表中存在至少一个匹配时返回
  2. 查询 t_student的名字 t_user中的性别和身高并且按照身高进行排序
  3. select t_student.name,t_user.sex,t_user.hight
  4. from t_student inner join t_user on t_student.id = t_user.id
  5. order by t_user.hight;

image.png

2.1 union

  1. union :合并两个或者多个select查询语句的结果
  2. 注:union 内部的每个select语句必须拥有相同数量的列,列也必须拥有相似的数据类型同时每个select语句的列顺序必须相同
  3. 语法:
  4. select name from t_user;
  5. union
  6. select name from t_student;
  7. 注:默认的 union会选取不同的值,如果允许选取重复的值 则需要使用union all
  8. 查询用户和学生的所有爱好(重复) 并排序
  9. select hobby from t_user
  10. union all
  11. select hobby from t_student
  12. order by hobby

image.png

2.2 insert into select

  1. insert into select 可以从一个表所有复制信息到另一个表中不会影响目标表任何已存在的行
  2. 语法:
  3. insert into t_user
  4. select * from t_student

2.3 create database

  1. create database :用于创建数据库
  2. 语法 create database 数据库名称
  3. create datavase my_sql

2.4 create table

  1. create table 创建表
  2. 语法 create table 表名
  3. create table user(
  4. id int,
  5. name varchar(125),
  6. sex int(10)
  7. )

2.5 sql约束

Not null

  1. not null 指某列不能存储null

2.6 unique

  1. unique 保证某列的每行必须有唯一值

2.7 primary Key

  1. primary Key : NOT NULL UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

2.8 foreign key

  1. foreign key : 保证一个表中的数据匹配另一个表中的值的参照完整性

2.9 check

  1. check : 保证列中的值符合指定的条件

3.0 default

  1. default : 规定给没有列赋值的时候 设置一个默认值

3.1 create index 创建索引

  1. create index 创建一个简单的索引 允许使用重复的值
  2. 语法:create index index_name on t_user

3.2 drop index 删除索引

  1. drop index 可以删除索引
  2. 语法: ALTER TABLE table_name DROP INDEX index_name