数据库结构定义语句DDL(2)

链接数据库:
如果加入到了Windows的环境变量中,可以在命令行下直接操作,通过命令链接数据库。

mysql -h localhost -u root -p
/*
-h 表示数据库链接地址,链接本机可不填
-u 表示要登录的用户
-p 表示使用密码登录
*/

数据库结构定义语句 :
1.数据库操作
2.数据表操作
3.数据字段操作

操作数据库

创建数据库

基本语法
create database 数据库名;
示例

mysql> create database kkcode;
/*
Query OK,1 row affected (0.00 sec)
Query OK表示上面的命令执行成功,所有的DDL和DML(不包括SELECT)操作执行成功后都显示"Query OK" 
1 row affected 表示只影响了数据库中一行的记录
0.00 sec 记录操作执行的时间
*/

查看数据库

基本语法(show databases;) //显示当前服务器的所有数据库

选中数据库或叫数据库切换

基本语法 (use 数据库名;)
示例

mysql> use kkcode;
//示例说明使用数据库kkcode

查看数据库中的表

基本语法(show tables;) //显示当前数据库下所有的表

mysql> use mysql;
mysql> show tables;
/*
这些表里面的内容是关系数据库服务器相关的用户,权限,数据库状态,设置等相关的信息数据.
*/

删除数据库

语法 (drop database 库名)

drop database kkcode;
/*
删除一个数据库,数据库的名字为 kkcode
*/

操作数据表

创建表

语法
create table 表名(字段名1 字段类型,....字段名n 字段类型);

示例

create table user(username varchar(20),password varchar(32));

查看表字段结构信息

语法(desc 表名;)

示例

desc user;

查看表的创建语句

语法
show create table 表名 \G;
示例

show create table emp \G;
Table: emp
Create Table: CREATE TABLE emp (
ename varchar(10) DEFAULT NULL,
hiredate date DEFAULT NULL,
sal decimal(10,2) DEFAULT NULL,
deptno int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1 row in set (0.00 sec)
ERROR:
No query specified
上面表的创建 SQL
语句中,除了可以看到表定义以外,还可以看到表的
engine(存储引擎) 和
charset(字符集)等信息。“\G”
选项的含义是使得记录能够按照字段竖着排列,对于内
容比较长的记录更易于显示

删除表

语法:
drop table 表名;
示例:

drop table emp;

指定表引擎和字符集

语法:

在创建表最后,我们常用MyISAM或者InnoDB引擎。
在指定引擎时,我们可以使用:
ENGINE=InnoDB
指定表默认字符集:
DEFAULT CHARSET=utf8
效果如下:
CREATE TABLE emp (
useraname varchar(10) DEFAULT NULL,
password date DEFAULT NULL,
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

数据字段操作

修改表字段类型 modify

假设我们存在user表,user结构如下:
mysql> desc user;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| username | varchar(10) | YES | | NULL | |
| password | varchar(32) | YES | | NULL | |
| createtime | int(10) | YES | | NULL | |
| createip | int(10) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

基本语法:

alter table 表名 modify 字段名 varchar(20);

示例说明 将user表的username的类型改为varchar(20)
我们执行一下,看看结果:

mysql> alter table user modify username varchar(20);
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc user;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| username | varchar(20) | YES | | NULL | |
| password | varchar(32) | YES | | NULL | |
| createtime | int(10) | YES | | NULL | |
| createip | int(10) | YES | | NULL | |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

增加表字段

基本语法

alter table 表名 add column 字段名 类型;

示例:

alter table user add column age int(3);
//示例说明 添加一个字段为age,类型为整型长度为3

增加字段时控制字段顺序

插入某字段之后

ALTER TABLE 表名 ADD 字段名 字段类型  AFTER 字段名;
示例 ALTER TABLE user ADD email VARCHAR(60) AFTER createip;
示例说明
user表中,在createip后增加一个字段为email,类型为varchar ,长度为60

表中在最开始的位置增加一个字段

基本语法 ALTER TABLE 表名 ADD 字段名 字段类型;
示例 ALTER TABLE user ADD id INT(10) FIRST;
示例说明
user表中在最开始的位置增加一个字段为id,类型为int,
长度为10

删除表字段

基本语法

alter table 表名 drop column 字段名;

示例

alter table user drop column age;//示例说明 在user表中删除字段age

表字段改名

基本语法

alter table 表名 change 字段原名 字段新名  字段类型;

示例

alter table user change email em varchar(60);//示例说明 在user表中将字段中的email字段名字为em

修改表字段时排列顺序

在前的字段增加和修改语句(add/change/modify)中,
最后都可以加一个可选项 first|after。
增加表字段时我们已经学过了如何调整顺序。
我们现在在来看看另外的change或modify如何来调整顺序。
我们用first做个小实验。

使用modify调整顺序

mysql> alter table user modify em varchar(60) first;

7.修改表名

基本语法
alter table 旧表名 rename 新的表名;

示例

mysql> alter table user rename new_user;

你可能感兴趣的:(【MySql】)