MySQL基础语句——DDL语句

DDL语句 data definition languages

针对的是数据段、数据库、表、列、索引等数据库对象。关键字主要有createdropalter等。

启动MySQL服务之后,登录数据库命令:

mysql -uroot -pxxx;

注意:-u和-p与后面的名称、密码之间是没有空格的。

  • 创建数据库
#创建数据库
create database dbname;
#选择数据库
use dbname;
#显示数据库表
show tables;

示例

CREATE DATABASE mybase;
USE mybase;
  • 删除数据库
mysql> drop database dbname;
Query OK, 0 rows affected (0.00 sec)

 drop语句操作的结果都是显示“0 rows affected”。

  • 创建表
create table tablename(
    column_name_1 column_type_1 constraints;
    column_name_2 column_type_2 constraints;
    ...
    column_name_n column_type_n constraints;
);

示例

CREATE TABLE users (
    uid INT PRIMARY KEY AUTO_INCREMENT ,
    uname VARCHAR(20),
    uaddress VARCHAR(200)
);

 MySQL的表名是以目录的形式存在于磁盘上,所以表名的字符可以用目录名允许的字符。column_name是列的名字;column_type是列的数据类型;constraints是列的约束条件

#查看数据表结构
desc tablename;

#查看建表的SQL语句
show create table tablename \g;
mysql> show create table users;
+-------+----------------------------------------------+
| Table | Create Table           
+-------+----------------------------------------------+
| users | CREATE TABLE `users` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(20) DEFAULT NULL,
  `uaddress` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table users \g;
+-------+----------------------------------------------+
| Table | Create Table         
+-------+----------------------------------------------+
| users | CREATE TABLE `users` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(20) DEFAULT NULL,
  `uaddress` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------+
1 row in set (0.00 sec)

ERROR:
No query specified

除了可以看到表定义以外,还可以看到表的engine(存储引擎)和charset(字符集)等信息。

\g:时的记录能够按照字段竖向排列,这样方便显示字段信息比较长的记录。(可以看看上面的代码的区别)

  • 删除表 
drop table tablename;
  •  修改表

 如果不想删除表,可以对表结构进行适当的修改以适应新的要求。

#添加列,添加字段:修改 表 表名 添加 列名 列数据类型 约束 ……
#alter table tablename add [column] column_definition [first|after col_name];
ALTER TABLE users ADD tel INT ;


#修改列的数据类型约束:修改 表 表名 修改 列名 列数据类型 约束 ……
#alter table tablename modify [column] column_definition [first|after col_name];
ALTER TABLE users MODIFY tel VARCHAR(50);


#修改列名:alter table 表名 change 旧列名 新列名 数据类型 约束
#alter table tablename change [column] old_col_name new_col_name column_definition [first|after col_name];
ALTER TABLE users CHANGE tel newtel DOUBLE;


#删除列:alter table 表名 drop 列名
#alter table tablename drop [column] col_name;
ALTER TABLE users DROP column newtel;


#(一)修改表名:rename table 表名 to 新名
RENAME TABLE users TO newusers;
#(二)alter table tablename rename [to] new_tablename;
alter table users rename newusers;

 字段增加和修改语句(add/change/modify)都有一个可选项first|after column_name,这个可以用来修改字段在表中的位置,add增加的新字段默认是加在表的最后的位置,而change/modify默认都不会改变字段的位置。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值