MySQL---建表新增語句
阿新 • • 發佈:2018-12-25
-
建立學生表,表名student,根據需求,需要儲存學號,姓名,性別、生日4列資訊:
- mysql -uroot -p ---以root使用者本地連線MYSQL資料庫
- mysql>show databases; --檢視當前可以使用哪些資料庫
- mysql>use test; --使用test資料庫
- mysql>show tables; --檢視資料庫下有哪些表
- mysql>create table student (sno int,sname varchar(20),sex char(1),birth date); --建立學生表, 包括4列資訊
- mysql>show tables; mysql>desc student; --檢視student表列的資訊
-
向student表中新增學生資訊,學號1,張三,男,1995-10-23
mysql> insert into student (sno,sname,sex,birth) values(1,'張三','男','1995-10-23'); Query OK, 1 row affected (0.00 sec) mysql> select * from student; +------+-------+------+------------+ | sno | sname | sex | birth | +------+-------+------+------------+ | 1 | 張三 | 男 | 1995-10-23 | +------+-------+------+------------+ 1 row in set (0.00 sec)
-
向student表中新增學生資訊,學號2,李四,女,不填寫生日
mysql> insert into student (sno,sname,sex,birth) values(2,'李四','女','1995-10-23'); Query OK, 1 row affected (0.01 sec) mysql> select * from student; +------+-------+------+------------+ | sno | sname | sex | birth | +------+-------+------+------------+ | 1 | 張三 | 男 | 1995-10-23 | | 2 | 李四 | 女 | 1995-10-23 | +------+-------+------+------------+ 2 rows in set (0.00 sec)
-
SQL – 空值 null
- null是SQL語言中的特殊值
- null值代表不確定,資料型別未知
- 屬於不明確、狀態未知的資料
- 上例中向表中插入一行資料,沒有指定‘李四’ 的生日,而且‘birth’這一列沒有指定預設值,會用 null 來填充
-
DML-insert語句
向student表中一次新增2名學生資訊
-
學號3,王五,男,1996-05-12;
-
學號4,趙六,性別未知,1996-03-15
mysql> insert into student values(3,'王五','男','1996-05-12'),(4,'趙六',null,'1996-3-15');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from student;
+------+-------+------+------------+
| sno | sname | sex | birth |
+------+-------+------+------------+
| 1 | 張三 | 男 | 1995-10-23 |
| 2 | 李四 | 女 | 1995-10-23 |
| 3 | 王五 | 男 | 1996-05-12 |
| 4 | 趙六 | NULL | 1996-03-15 |
+------+-------+------+------------+
4 rows in set (0.00 sec)
- Insert into 表名 (列名1,列名2,....) values(列1對應值,列2對應值,....);
- Insert into 表名 values(列1對應值,列2對應值,....,列N對應值); 不指定列名需要在values中指定所有列對應的值,順序不能錯
- Insert into 表名 values(列1對應值,列2對應值,....,列N對應值),(列1對應值,列2對應值,....,列N對應值),(列1對應值,列2對應值,....,列N對應值).....; 一次插入多行,每行用逗號隔開,寫法僅限於MYSQL資料庫
-
DML-update語句示例:
把sno等於0的性別修改為‘女’
mysql> update student set sex='女' where sno=0;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
update 表名 set 列1=列1值, 列2=列2值 where 列N=列N值;
一般更新語句需要加上where子句已定位要修改的行,如果不加將會修改所有行相應的列;如果修改多個列對應的值,用“逗號”隔開各個列 。
-
DML-delete語句示例:
刪除sno=0的行
mysql> delete from student where sno=2;
delete from 表名 where 列N=列N值;
有些資料庫如oracle可以省略delete後面的from,mysql不可以;一般刪除語句需要加上where子句已定位要刪除的行,如果不加會刪除整個表的所有行。
-
DDL建表語句CREATE TABLE其它用法
- 基於已有資料表建立新表並複製所有資料
create table student1 as select * from student; (CTAS建表方式)
- 基於已有資料表建立新表並複製部分資料
create table student2 as select * from student where gender='女';
- 基於已有資料庫建立新表僅複製表結構不包括行資料