复习SQL基础

时间:2019-03-12
本文章向大家介绍复习SQL基础,主要包括复习SQL基础使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. 显示当前存在的数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)

2. 创建数据库

create database student;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| student            |
+--------------------+
4 rows in set (0.00 sec)

3. 进入数据库

mysql> use student;
Database changed

4. 创建表

mysql> create table information(id int, name text, serial text, address text);
Query OK, 0 rows affected (0.01 sec)

5. 显示所有表

mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| information       |
+-------------------+
1 row in set (0.01 sec)

5. 列举表中详细字段

mysql> desc information;
+---------+---------+------+-----+---------+-------+
| Field   | Type    | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| id      | int(11) | YES  |     | NULL    |       |
| name    | text    | YES  |     | NULL    |       |
| serial  | text    | YES  |     | NULL    |       |
| address | text    | YES  |     | NULL    |       |
+---------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)

6. 数据插入表中

mysql> insert into information values(1,"wk","123","nmg");
Query OK, 1 row affected (0.00 sec)

7. 查看表信息

mysql> select * from information;
+------+----------+--------+---------+
| id   | name     | serial | address |
+------+----------+--------+---------+
|    1 | wk       | 123    | nmg     |
|    1 | zhaoyun  | 123    | xj      |
|    1 | zhangfei | 321    | sd      |
+------+----------+--------+---------+
3 rows in set (0.00 sec)
select * form information where name != "ll";

当前日期:select date;

升序:select * form information order by id;

降序:select * form information order by id desc;

查询数学成绩最高的5名:select top 5 * from TblScore order by tMath desc

内联:如果想把用户信息、积分、等级都列出来,那么一般会这样写:select * from T1 ,T3 where T1.userid = T3.userid(其实这            样的结果等同于select * from T1 inner join T3 on T1.userid=T3.userid )。

          把两个表中都存在userid的行拼成一行(即内联),但后者的效率会比前者高很多,建议用后者(内联)的写法。

运行结果

T1.userid

username

password

T2.userid

jifen

dengji

 

1

jack

jackpwd

1

20

3

左联:显示左表T1中的所有行,并把右表T2中符合条件加到左表T1中;右表T2中不符合条件,就不用加入结果表中,并且NULL              表示。

    SQL语句:select * from T1 left outer join T2 on T1.userid=T2.userid

运行结果

T1.userid

username

password

T2.userid

jifen

dengji

 

1

jack

jackpwd

1

20

3

 

2

owen

owenpwd

NULL

NULL

NULL

右联:显示右表T2中的所有行,并把左表T1中符合条件加到右表T2中;左表T1中不符合条件,就不用加入结果表中,并且NULL              表示。

          SQL语句:select * from T1 right outer join T2 on T1.userid=T2.userid

运行结果

T1.userid

username

password

T2.userid

jifen

dengji

 

1

jack

jackpwd

1

20

3

 

NULL

NULL

NULL

3

50

6

全联:显示左表T1、右表T2两边中的所有行,即把左联结果表+右联结果表组合在一起,然后过滤掉重复的。

      SQL语句:select * from T1 full outer join T2 on T1.userid=T2.userid

运行结果

T1.userid

username

password

T2.userid

jifen

dengji

 

1

jack

jackpwd

1

20

3

 

2

owen

owenpwd

NULL

NULL

NULL

 

NULL

NULL

NULL

3

50

6

8. 更新语句

update information set name="kk" where name="wk";

9. 删除语句

mysql> delete from information where name="kk";