使用mysql -uroot -p$tmp_pwd,输入密码进入mysql页面
创建
创建数据库
create database+数据库名;
create database sq1;
创建表
首先你要确定你要在哪个数据库中创建表(use+数据库名)
规则:create table +表名(
列名 列类型,
列名 列类型,
列名 列类型
);
注意在最后一个类类型后面没有逗号
列类型
查看
查看数据库
在Linux系统中,在结束的命令后面要以分号结尾(;),表示命令结束
show databases;
这里就可以看见我们之前创建的数据库了
查看数据库中表
SHOW TABLES FROM + 数据库名;
功能:显示当前数据库中已有的数据表的信息
show tables from sq1;
我显示我自己创建的sq1数据库中的一个表score表
删除表
DROP TABLE [IF EXISTS] +表名;
功能:删除指定的表
比如我这里多创建了lrs_audit_rule_package这个表
要删除他就用
drop table lrs_audit_rule_package;
再去查看sq1中的表就没有了
查看列的信息
DESCRIBE 语法: {DESCRIBE|DESC}表名[列名];
功能:查看数据表中各列的信息
首先你要应用你所需要查询的数据库(use + 数据库名;),在不同的数据库中相同名字的表是不冲突的,所以你要告诉一下系统,你要查看的表是那个数据库里的。
use sq1;
我现在来查看一下我sq1、这个数据库中score表的各列信息;
describe score;
修改
修改列类型 :ALTER TABLE 表名 MODIFY 列名 列类型;
增加列 :ALTER TABLE 表名 ADD 列名 列类型;
删除列 :ALTER TABLE 表名 DROP 列名;
列改名 :ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
更改表名 :
ALTER TABLE 表名 RENAME 新表名;
RENAME TABLE 表名 TO 新表名;
修改列类型
我现在想修改id这个列的列类型改为varchar(18)
alter table score modify id varchar(18);
再来查看一下
增加列
我现在想在score表中增加一个sc_teacher的列名
alter table score add sc_teacher varchar(20);
删除列
我现在想从score表中删除sc_teacher的列
alter table score drop sc_teacher;
列改名
我现在想把score表中的name列名改成stu_name
alter table score change name stu_name varchar(20);
更改表名
我现在想把score这个表改一个名字stu_score,但是表里的列名不变
alter table score rename stu_score;
复制
复制一个表结构的实现方法有两种
- 方法一:在create table语句的末尾添加like子句,可以将源表的表结构复制到新表中,语法格式如下。
create table 新表名 like 源表 - 方法二:在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表 记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
create table 新表名 select * from 源表
现在我复制stu_score表为一个新的student表
这里面的列名、列类型和score里的一样
数据库字典
由information_schema数据库负责维护
- tables-存放数据库里所有的数据表、以及每个表所在数据库。
- schemata-存放数据库里所有的数据库信息
- views-存放数据库里所有的视图信息。 columns-存放数据库里所有的列信息。
- triggers-存放数据库里所有的触发器。
- routines-存放数据库里所有存储过程和函数。
- key_column_usage-存放数据库所有的主外键
- table_constraints-存放数据库全部约束。
- statistics-存放了数据表的索引。