库操作&表操作
系统数据库
ps:系统数据库:
mysql 授权库,主要存储系统用户的 权限信息
test MySQL数据库系统自动创建的 测试数据库
ination_schema
虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等.
说得简单点,ination_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在ination_schema表里面。
命令行提示符:
help--帮助语法
如果忘记某个SQL语法,可以通过help查询,当然不只是SQL语句的语法
例如:help create database;
数据库操作
1、查看数据库
show databases; -----------查看所有的数据库 show create database db_name; ------查看库的 创建属性 select database(); --------显示当前在哪个数据库下
2、创建数据库
create database db_name; ---------------------------创建数据库(默认utf8) create database db_name character set=utf8; ------创建数据库(指定编码集) create database db_name default character set=utf8 create database 数据库名 charset utf8;
数据库命名规则:
- 可以由字母、数字、下划线、@、#、$
- 区分大小写
- 唯一性
- 不能使用关键字如 create select
- 不能单独使用数字
- 最长128位
3、进入(使用)数据库
use db_name; -------------------进入db_name数据库
4、修改数据库
alter database db_name charset utf8;
5、删除数据库
drop database db_name; -------------------------删除数据库
(注意:后面的(;)号)
表操作
表:表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段
s_id, s_name, s_age, s_sex, 称为字段, 一行内容称为一条记录
1、创建表
语法:
create table 表名(
字段名1 类型[(宽度) 约束条件],
字段名2 类型[(宽度) 约束条件],
字段名3 类型[(宽度) 约束条件]
);
注意:
1. 在同一张表中,字段名是不能相同
2. 宽度和约束条件可选
3. 字段名和类型是必须的
创建表格:
create table tb_name( id int auto_increment primary key #列名,整型,不能为空,自动递增,唯一性,主键 (主键:不能为空,不能重复,语法上不能修改) name varchar(10) not null comment '用户名' #列名,字符串(最大长度),不能为空 comment ‘str’ 添加字段注释 age int not null default 0 #default 0 设置列的默认值 sex enum('male','female'), #枚举,只能从后面的值中选择 )engine=InnoDB //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索 default charset=utf8; //设置默认的编码,防止数据库中文乱码 如果是有条件的创建数据表还可以使用 CREATE TABLE IF NOT EXISTS tb_name(........ #如果表tb_name不存在,就创建
2、查看表
查看所有表格:
show tables; ----------------查看db_name数据库中所有的表
查看一个表格所有字段属性
desc 表名; ------------------查看表所有字段属性配置
3、修改表
alter table...
语法:
1. 修改表名 alter table 表名 rename 新表名; 2. 增加字段 alter table 表名 add 字段名 数据类型 [完整性约束条件…], add 字段名 数据类型 [完整性约束条件…]; ##在后面顺序添加字段 alter table 表名 add 字段名 数据类型 [完整性约束条件…] first; ##在最前面添加字段 alter table 表名 add 字段名 数据类型 [完整性约束条件…] after 字段名1; ##在字段1后面添加字段 3. 修改字段 alter table 表名 modify 字段名 数据类型 [完整性约束条件…]; (##只能改字段的属性,改不了字段名) alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件…]; (##连字段名字都能改) alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件…]; 4. 删除字段 alter table 表名 drop 字段名;
外键添加和删除:
// 添加: mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid); mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>; // 删除: mysql>alter table tb_people drop foreign key fk_1; mysql>alter table <表名> drop foreign key <外键名>;
4、复制表
1)复制表结构+记录 (key不会复制: 主键、外键和索引)
mysql> create table new_table select * from service;
2)只复制表结构
▼1 mysql> select * from service where 1=2; //条件为假,查不到任何记录 Empty set (0.00 sec) mysql> create table 新表名 select * from 表 where 1=2; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 ▼2 mysql> create table 新表名 like 表名; //复制主键...
5、删除表
drop table tb_name ------------删除表