MySQL-----表的操作
1.创建表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;说明:
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
----创建案例
mysql> create table if not exists user(-> id int primary key,-> name varchar(10) comment "这是姓名",-> pssword varchar(100) comment "这是密码",-> bithyday date comment "生日")character set utf8mb4 ENGINE InnoDB ;
Query OK, 0 rows affected (0.19 sec)
2.查看表结构
desc 表名;
mysql> desc user;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(10) | YES | | NULL | |
| pssword | varchar(100) | YES | | NULL | |
| bithyday | date | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
3.修改表
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename DROP (column);
--在user表添加二条记录
mysql> insert into user(id,name,pssword,bithyday) values(1,"熊明","213adad","1999-1-2")
Query OK, 1 row affected (0.00 sec)
mysql> insert into user(id,name,pssword,bithyday) values(2,"熊哈","24234fsdsgds","1999--1-3");
Query OK, 1 row affected (0.01 sec)--查看插入数据
mysql> select * from user;
+----+--------+--------------+------------+
| id | name | pssword | bithyday |
+----+--------+--------------+------------+
| 1 | 熊明 | 213adad | 1999-01-02 |
| 2 | 熊哈 | 24234fsdsgds | 1999-01-03 |
+----+--------+--------------+------------+
2 rows in set (0.00 sec)
修改name,将其长度改成60
mysql> alter table user modify name varchar(666);
Query OK, 2 rows affected (0.38 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> desc user;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(666) | YES | | NULL | |
| pssword | varchar(100) | YES | | NULL | |
| bithyday | date | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
在user表添加一个字段,用于保存图片路径
mysql> alter table user add assert varchar(99) comment"这是路劲";
Query OK, 0 rows affected (0.07 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> desc user;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(666) | YES | | NULL | |
| pssword | varchar(100) | YES | | NULL | |
| bithyday | date | YES | | NULL | |
| assert | varchar(99) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)--查看增加字段对数据有没有影响
mysql> select * from user;
+----+--------+--------------+------------+--------+
| id | name | pssword | bithyday | assert |
+----+--------+--------------+------------+--------+
| 1 | 熊明 | 213adad | 1999-01-02 | NULL |
| 2 | 熊哈 | 24234fsdsgds | 1999-01-03 | NULL |
+----+--------+--------------+------------+--------+
2 rows in set (0.00 sec)
删除password列
注意:删除字段一定要小心,删除字段及其对应的列数据都没了
mysql> alter table user drop pssword;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> desc user;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(666) | YES | | NULL | |
| bithyday | date | YES | | NULL | |
| assert | varchar(99) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
修改表名为employee
mysql> alter table user rename employee;
// alter table user rename to employee; to可以省略
Query OK, 0 rows affected (0.15 sec)mysql> desc employee;
mysql> select * from employee;
+----+--------+------------+--------+
| id | name | bithyday | assert |
+----+--------+------------+--------+
| 1 | 熊明 | 1999-01-02 | NULL |
| 2 | 熊哈 | 1999-01-03 | NULL |
+----+--------+------------+--------+
2 rows in set (0.00 sec)
将name列修改为xingming
mysql> alter table employee change name xinming varchar(666);
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> desc employee;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| xinming | varchar(666) | YES | | NULL | |
| bithyday | date | YES | | NULL | |
| assert | varchar(99) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
4.删除表
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
例子:
drop table employee;