DDL语言是数据库模式定义语言,用语句对数据库和表进行定义。
对数据库进行操作(CURD操作)
- 查询所有的数据库:
show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
- 查询数据库的创建语句(显示该数据库的字符集):
show create database mysql;
mysql> show create database mysql;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mysql | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
- 创建数据库:
create database test2;
,
创建数据库并指定字符集:create database test2 character set utf8;
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)
mysql> show create database test2;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test2 | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
- 修改数据库字符集:
alter database test2 character set gbk;
mysql> alter database test2 character set gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database test2;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test2 | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
- 删除数据库:
drop database test2;
mysql> drop database test2;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
- 使用数据库test2:
use test2;
查询当前使用的数据库:select database();
mysql> use test2;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| test2 |
+------------+
1 row in set (0.00 sec)
对数据库中的表进行操作(CURD操作)
- 显示数据库中所有的表:
show tables;
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
- 显示表结构命令:
desc user
mysql> desc user;
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
| Select_priv | enum('N','Y') | NO | | N | |
- 创建一个表:
create table student (name varchar(20),age int,score double(5,2));
创建一个student表,有三个属性,常见的数据类型还有date,datatime等
mysql> create table student (name varchar(20),age int,score double(5,2));
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| student |
+-----------------+
1 row in set (0.00 sec)
- 删除表命令:
drop table student2;
mysql> drop table student2;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| student |
+-----------------+
1 row in set (0.00 sec)
- 修改表的名称:
alter table student rename to stu;
mysql> alter table student rename to stu;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| stu |
+-----------------+
1 row in set (0.00 sec)
- 修改表的字符集:
alter table stu character set gbk;
查看数据库或者表的字符集,均可以使用show create table/database 表名/数据库名
mysql> alter table stu character set gbk;
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table stu;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stu | CREATE TABLE `stu` (
`name` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`score` double(5,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec
- 增加一列:
alter table stu add gender varchar(20);
mysql> alter table stu add gender varchar(20);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc stu;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | double(5,2) | YES | | NULL | |
| gender | varchar(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
- 修改列名和数据类型(也可以只修改列名):
alter table stu change gender sex varchar(10);
mysql> alter table stu change gender sex varchar(10);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | double(5,2) | YES | | NULL | |
| sex | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)
- 只修改数据类型:
alter table stu modify sex varchar(20);
mysql> alter table stu modify sex varchar(20);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | double(5,2) | YES | | NULL | |
| sex | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
- 删除表中的某一列:
alter table stu drop sex;
mysql> alter table stu drop sex;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | double(5,2) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)