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";
10. 删除数据库
drop database student;
11. 删除表
mysql> drop tables information;
Query OK, 0 rows affected (0.00 sec)