请选择 进入手机版 | 继续访问电脑版

落羽黑客论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 111|回复: 5

常用sql语句

[复制链接]

137

主题

139

帖子

519

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
519
发表于 2021-7-31 15:02:41 | 显示全部楼层 |阅读模式
主要总结mysql一些常用知识点
[常用命令]
1、查看数据库
  1. show database;
复制代码

2、创建数据库
  1. create database database_name;
复制代码

3、切换数据库
  1. use database_name;
复制代码

4、查看某数据库中所有的数据表
  1. show table;
复制代码

5、创建数据表
  1. CREATE TABLE my_table (
  2.     name VARCHAR(20),
  3.     owner VARCHAR(20),
  4.     species VARCHAR(20),
  5.     sex CHAR(1),
  6.     birth DATE,
  7.     death DATE
  8. );
复制代码

6、查看数据表结构
  1. describe  table_name;  --缩写: desc
复制代码

7、查看数据表中的记录
  1. select  *  from  table_name;

  2. -- 去重复
  3. select distinct name from table_name
复制代码

8、往数据表中添加数据记录
  1. INSERT INTO table_name
  2. VALUES('puffball','Diane','hanst','f','1999-03-23',NULL);

  3. -- 指定属性
  4. insert into user3 (name) value('asfjl');
复制代码

9、删除数据
  1. delete from table_name where name='puffball';
复制代码

10、修改数据
  1. update table_name set name='wang' where owner='haha'
复制代码

11、建表约束--主键
  1. create table user(
  2.     id int primary key,
  3.     name varchar(20)
  4. );

  5. -- 联合主键
  6. create table user2(
  7.     id int,
  8.     name varchar(20),
  9.     password varchar(20),
  10.     primary key(id,name)
  11. );

  12. -- 后来添加主键
  13. create table user4(
  14.     id int,
  15.     name varchar(20)
  16. );
  17. alter table user4 add primary key(id);

  18. -- 删除主键约束
  19. alter table user4 drop primary key;

  20. -- 修改约束
  21. alter table user4 modify id int primary key;
复制代码

12、建表约束--自增
  1. create table user3(
  2.     id int primary key auto_increment,
  3.     name varchar(20)
  4. );
复制代码

12、建表约束--唯一:约束修饰的字段的值不可以重复
  1. create table user5(
  2.     id int,
  3.     name varchar(20),
  4.     unique(name)     
  5. -- 可一起约束多个,不一起重复即可;unique(id,name)
  6. );

  7. -- 再另一种写法
  8. create table user5(
  9.     id int,
  10.     name varchar(20)
  11. );
  12. alter table user5 add unique(name);

  13. -- 删除唯一约束
  14. alter table user5 drop index name

  15. -- modify
  16. alter table user5 modify name varchar(20) unique;
复制代码

13、非空约束:修饰的字段不能为NULL
  1. create table user6(
  2.     id int,
  3.     name varchar(20) not null
  4. );
  5. -- 反null? 异常
  6. insert into user6 (name) value('jfsl');
复制代码

14、默认约束
  1. create table user7(
  2.     id int,
  3.     name varchar(20),
  4.     age int default 10
  5. );

  6. insert into user7 (id,name) value(1,'slfj');
  7. insert into user7 (id,name,age) values(1,'slsfj',5);
复制代码

15、外键约束
  1. create table classes(
  2.     id int primary key,
  3.     name varchar(20)
  4. );
  5. create table students(
  6.     id int primary key,
  7.     class_id int,
  8.     foreign key(class_id) references classes(id)
  9. );
复制代码


[查询]
1、多表查询
  1. -- 两表查询
  2. select sname,cno, degree from student,score
  3. where student.sno = score.sno;

  4. -- 三表查询
  5. select sname, cname,degree from  student,course,course,score
  6. where student.sno = score.sno
  7. and course.cno = score.cno;
复制代码

2、分组查询
  1. -- 子查询加分组求评均
  2. select cno, avg(degree) from score
  3. where sno in (select sno from student where class='1233')
  4. group by cno;

  5. -- year函数与带in关键字的子查询
  6. select * from student where year(sbirthday) in (select year(sbirthday) from student where sno in (108,117));
复制代码

3、多层嵌套查询
  1. --
  2. select tno from teacher where tname='zhang';
  3. --
  4. select cno from course where tno = (select tno from teacher where tname='zhang');

  5. --
  6. select * from score where cno=()
  7. --
  8. select * from score where cno=(select cno from course where tno =(select tno from reacher where tname='zhang'));
复制代码

4、union与not in
  1. -- not in
  2. select prof from teacher where depart='电子工程系';
  3. select * from teacher where depart='计算机系' and prof not in (select
  4. prof from teacher where depart='电子工程系');

  5. select * from teacher where depart='电子工程系' and prof not in (select prof from teacher where depart='计算机系');

  6. -- UNION 操作符用于合并两个或多个 SELECT 语句的结果集
  7. select * from teacher where depart='计算机系' and prof not in (select prof from teacher where depart='电子工程系')
  8. union
  9. select * from teacher where depart='电子工程系' and prof not in (select prof from teacher where depart='计算机系');
复制代码

5、any与all
  1. -- any表示至少一个
  2. select * from score where cno='34'
  3. and degree>any(select degree from score where cno='334')
  4. order by degree desc;

  5. -- all表示所有
  6. select * from score where cno='34'
  7. and degree>all(select degree from score where cno='334')
  8. order by degree desc;
复制代码

回复

使用道具 举报

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2021-7-31 15:03:28 | 显示全部楼层
不错!!
回复

使用道具 举报

0

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2021-7-31 15:04:15 | 显示全部楼层
牛逼!!
回复

使用道具 举报

0

主题

3

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2021-7-31 15:05:05 | 显示全部楼层
不错呀!!
回复

使用道具 举报

0

主题

1

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2021-7-31 15:06:01 | 显示全部楼层
转发了!!
回复

使用道具 举报

0

主题

3

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2021-7-31 15:06:41 | 显示全部楼层
赞!赞!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|落羽黑客论坛

GMT+8, 2021-9-26 02:11 , Processed in 0.048590 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表