mysql数据库和数据库表操作语句学习笔记

﹏ヽ暗。殇╰゛Y 2022-11-19 15:58 291阅读 0赞

mysql数据库和数据库表操作语句学习笔记

数据库操作语句

1.创建数据库

creat database ‘数据库名’

  1. mysql> CREATE DATABASE test;
  2. Query OK, 1 row affected (0.00 sec)

不过默认创建的数据库编码格式为latin1,在mysql中存储和显示中文时会产生乱码

  1. 查询数据库编码格式
  2. mysql> show variables like 'character_set_database';
  3. +------------------------+--------+
  4. | Variable_name | Value |
  5. +------------------------+--------+
  6. | character_set_database | latin1 |
  7. +------------------------+--------+
  8. 1 row in set (0.00 sec)

我们可以在创建数据库的时候指定编码格式
例如:

  1. mysql> CREATE DATABASE test1 charset=utf8mb4;
  2. Query OK, 1 row affected (0.00 sec)

在这里插入图片描述

另外数据库不能重复创建,会报错(ERROR 1007 (HY000): Can’t create database ‘test’; database exists)

2.查看数据库

  1. mysql> show databases; 用来查看所有数据库
  2. +--------------------+
  3. | Database |
  4. +--------------------+
  5. | information_schema |
  6. | mysql |
  7. | performance_schema |
  8. | sys |
  9. | test |
  10. | test1 |
  11. +--------------------+
  12. 6 rows in set (0.00 sec)

3.切换数据库

选择指定的数据库
use
例如:

  1. mysql> use test1;
  2. Database changed

执行以上命令后,就选择了test1这个数据库,后续的操作都会在test1数据库中进行操作

4.删除数据库

DROP DATABASE 语句用于删除数据库

  1. mysql> drop database test;
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> show databases;
  4. +--------------------+
  5. | Database |
  6. +--------------------+
  7. | information_schema |
  8. | mysql |
  9. | performance_schema |
  10. | sys |
  11. | test1 |
  12. +--------------------+
  13. 5 rows in set (0.00 sec)

5.修改数据库

只能修改字符集

  1. mysql> alter database test charset=utf8mb4;
  2. Query OK, 1 row affected (0.00 sec)

在这里插入图片描述

表的操作语句

1.创建表

表由行和列组成,每个表都必须有个表名

  1. CREATE TABLE table_name
  2. (
  3. column_name1 data_type(size),
  4. column_name2 data_type(size),
  5. column_name3 data_type(size),
  6. ....
  7. );

column_name 参数规定表中列的名称。
data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
size 参数规定表中列的最大长度。
例如:
创建一个学生表,包含三列,ID,姓名,年龄
在创建表之前要先进入到相应的数据库中,在数据库中创建表

  1. mysql> use test1;
  2. Database changed
  3. mysql> show tables;
  4. Empty set (0.00 sec)
  5. mysql> create table student (id int ,name varchar(128),age int);
  6. Query OK, 0 rows affected (0.02 sec)
  7. id列和age列的数据类型是int,包含整数,name列的数据类型是varchar,包含字符

2.查询表

  1. mysql> show tables;
  2. +-----------------+
  3. | Tables_in_test1 |
  4. +-----------------+
  5. | student |
  6. +-----------------+
  7. 1 row in set (0.00 sec)

3.删除表

DROP TABLE table_name

  1. mysql> drop table student;
  2. Query OK, 0 rows affected (0.03 sec)
  3. mysql> show tables;
  4. Empty set (0.00 sec)

补充:如果只删除表内的数据,不删除表本身,使用TRUNCATE TABLE语句

  1. mysql> truncate table student;
  2. Query OK, 0 rows affected (0.01 sec)

4.查询表结构的详细信息

describe(或者desc)

  1. mysql> describe student;
  2. +-------+--------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+--------------+------+-----+---------+-------+
  5. | id | int(11) | YES | | NULL | |
  6. | name | varchar(128) | YES | | NULL | |
  7. | age | int(11) | YES | | NULL | |
  8. +-------+--------------+------+-----+---------+-------+
  9. 3 rows in set (0.00 sec)

5.查询建表语句

show create table

  1. mysql> show create table student;
  2. +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3. | Table | Create Table |
  4. +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5. | student | CREATE TABLE `student` (
  6. `id` int(11) DEFAULT NULL,
  7. `name` varchar(128) DEFAULT NULL,
  8. `age` int(11) DEFAULT NULL
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
  10. +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
  11. 1 row in set (0.00 sec)

6.修改表

alter table 原表名 rename 新表名

  1. mysql> show tables;
  2. +-----------------+
  3. | Tables_in_test1 |
  4. +-----------------+
  5. | student |
  6. +-----------------+
  7. 1 row in set (0.00 sec)
  8. mysql> alter table student rename teacher;
  9. Query OK, 0 rows affected (0.00 sec)
  10. mysql> show tables;
  11. +-----------------+
  12. | Tables_in_test1 |
  13. +-----------------+
  14. | teacher |
  15. +-----------------+
  16. 1 row in set (0.00 sec)

也可以将表移动到另一个数据库中
alter table rename to newdatabase.newtablename;
例如:将test1中的teacher表移动到test库中 并取名为student

  1. mysql> alter table teacher rename to test.student;
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> show tables;
  4. Empty set (0.00 sec)
  5. mysql> use test;
  6. Reading table information for completion of table and column names
  7. You can turn off this feature to get a quicker startup with -A
  8. Database changed
  9. mysql> show tables;
  10. +----------------+
  11. | Tables_in_test |
  12. +----------------+
  13. | student |
  14. +----------------+
  15. 1 row in set (0.00 sec)

7.修改表字段

增加一个新字段

alter table add 字段名 数据类型 [属性] ;
例:新增一个分数字段

  1. mysql> alter table student add score float;
  2. Query OK, 0 rows affected (0.02 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0

增加一个新字段,并放在首位

alter table add 字段名 数据类型 [属性] first ;
例:新增一个class字段,并放到第一位

  1. mysql> alter table student add class int first ;
  2. Query OK, 0 rows affected (0.03 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | int(11) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | score | float | YES | | NULL | |
  13. +-------+--------------+------+-----+---------+-------+
  14. 5 rows in set (0.00 sec)

新增一个字段,并放到指定字段后面

alter table add 字段名 数据类型 [属性] after 指定字段 ;
例:加一个aaa字段 放到age后面

  1. mysql> alter table student add aaa int after age ;
  2. Query OK, 0 rows affected (0.02 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | int(11) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | aaa | int(11) | YES | | NULL | |
  13. | score | float | YES | | NULL | |
  14. +-------+--------------+------+-----+---------+-------+
  15. 6 rows in set (0.00 sec)

修改字段属性

alter table modify 字段名 数据类型 [属性] ;
例:将原本class的int类型 改为varchar属性 并限制最大长度为12

  1. mysql> alter table student modify class varchar(12) ;
  2. Query OK, 0 rows affected (0.03 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | varchar(12) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | aaa | int(11) | YES | | NULL | |
  13. | score | float | YES | | NULL | |
  14. +-------+--------------+------+-----+---------+-------+
  15. 6 rows in set (0.00 sec)

修改字段名

alter table change 原字段名 新字段名 数据类型 [属性] ;
例:将aaa字段改为 bbb字段

  1. mysql> alter table student change aaa bbb int;
  2. Query OK, 0 rows affected (0.00 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | varchar(12) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | bbb | int(11) | YES | | NULL | |
  13. | score | float | YES | | NULL | |
  14. +-------+--------------+------+-----+---------+-------+
  15. 6 rows in set (0.00 sec)

修改字段位置

alter table change 原字段名 新字段名 数据类型 [属性] after 指定字段;
例:将bbb字段改为ccc 并放到name后面

  1. mysql> alter table student change bbb ccc int after name;
  2. Query OK, 0 rows affected (0.03 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | varchar(12) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | ccc | int(11) | YES | | NULL | |
  12. | age | int(11) | YES | | NULL | |
  13. | score | float | YES | | NULL | |
  14. +-------+--------------+------+-----+---------+-------+
  15. 6 rows in set (0.00 sec)

删除字段

alter table drop <字段>
例:删除ccc字段

  1. mysql> alter table student drop ccc;
  2. Query OK, 0 rows affected (0.03 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql> describe student;
  5. +-------+--------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+--------------+------+-----+---------+-------+
  8. | class | varchar(12) | YES | | NULL | |
  9. | id | int(11) | YES | | NULL | |
  10. | name | varchar(128) | YES | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | score | float | YES | | NULL | |
  13. +-------+--------------+------+-----+---------+-------+
  14. 5 rows in set (0.00 sec)

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读