Mysql
DDL
基本命令
先登录,不必多说……
小tips:
使用过程中关键词要大写,比如USE,SELECT……(其实不区分,只是看起来显眼)
关于库(databases)
1.查看当前所有的库:
show databases;
2.创建库:
create database database_name;
3.删除库:
drop database database_name;
4.使用某一个指定库:
use database database_name;
注:
use 数据库名 —打开指定数据库(如果表名或者字段名是特殊字符,则需要带``)
eg:数据库名字为中文
use '数据库'
5.删除指定的数据库:
drop database database_name;
关于表(table)
使用table之前得先进入库中:
USE database database_name;
好嘟,现在可以对表进行操作:
1.查看库中所有的表:
show tables;
2.查看表的结构:
desc table_name;
3.创建一个新表:
- 表名
- 表字段名
- 定义每个表字段
CREATE TABLE table_name (column_name column_type);
eg:
create table user(
use_name VARCHAR(25),
user_birthday DATETIME
);
换成中文:
建立一个新表,表中数据有字段类型为VARCHAR(25)的 user_name 和 DATETIME型的 user_birthday。
eg:
建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。
CREATE TABLE Student
( Sno CHAR(5) PRIMARY KEY,
/* 列级完整性约束,Sno取值唯一*/
Sname CHAR(18) UNIQUE,
Ssex CHAR(2),
Sage INT,
Sdept CHAR(15)
);
常用的完整性约束:
1. 实体完整性约束: PRIMARY KEY
2. 参照完整性约束: FOREIGN KEY
3. 用户自定义完整性约束 :
非空值约束:not null
唯一性约束:unique
check约束
default默认约束
4.修改表名:
alter table table_oldname rename to table_newname;
5.修改基本的表:
ALTER TABLE <表名>
([ MODIFY COLUMN <列名> <新数据类型> ] //修改列的数据类型,可能会破坏已有的数据
[ ADD [COLUMN] <列名> <数据类型>] //增加一个新列,新增列一律为空值
[DROP COLUMN <列名>] //删除列
[ADD PRIMARY KEY(列名[,.. n ] )] //增加主码
[ADD FOREIGN KEY(列名)RFERNECES表名(列名)]);
删除某一列的时候:
ALTER TABLE table_name DROP COLUMN field_name;
//大写,否则会出现问题
6.删除表中的所有数据
delete from table_name;
5.一键删除所有的表:
drop table table_name;
6.创建临时表
create temporary table table_name ;
创建的过程和创建表的过程一样
7.查看表的内容
show columns form table_naem;
3.复制表
create table new_name like old_name;
insert into new_name select * form old_name;
关于索引
1.建立索引
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
例:
为学生-课程数据库中的Student,Couse,SC三个表建立索引。其中Student表按学号升序建唯一索引,Couse表按课程号升序建唯一索引,SC 表按学号降序和课程号升序建唯一索引。
CREATE UNIQUE INDEX Stsno ON Student(Sno ASC);
CREATE UNIQUE INDEX Cocno ON Couse(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno DESC,Cno);
2.删除索引
DROP INDEX <索引名> ON 表名;
或者
ALTER TABLE 表名 DROP INDEX <索引名> ;