1、MySQL服务启动和关闭
启动MySQL服务:
net start mysql //mysql是自己起的名字
关闭:
net stop mysql
登录MySQL数据库:
mysql -h hostname -u username -p
//hostname是服务器主机地址,username是用户名称,-p是密码
例如 mysql -h localhost -u rooot -p
2、操作数据库
1、显示已有的数据库
SHOW DATABASES;
2、创建数据库
CREATE DATABASE database_name;
CREATE DATABASE IF NOT EXISTS database_name ;
CHARACTER SET = GBK; //指定字符集
CREAT TABLE 表名 LIKE 源数据表名 //复制表结构,是空表
CREAT TABLE 表名 AS SELECT * FROM 源表名 //复制表数据,不包含主键,自动编号等内容
CREAT TABLE table1 LIKE table2;
INSERT INTO table1 SELECT * FROM table2; //复制一个表,表结构和内容都复制,
列的设置也复制。
3、显示创建的数据库的信息
SHOW CREATE DATABASE database_name;
4、修改数据库
ALTER DATABASE database_name
DEFAULT CHARACTER SET = UTF8 //设置默认字符集
DEFAULT COLLATE gbk_chinese_ci; //设置默认校对规则 utf8_bin/gbk_chinese_ci
4、删除数据库
DROP DATABASE database_name;
5、展示数据库存储引擎
SHOW ENGINES;
6、查看默认的存储引擎
SHOW VARIABLES LIKE '%storage_engine%';
3、创建、修改和删除数据表
3.1 创建数据表
1、创建数据表
CREATE TABLE table_name
(
字段名1 数据类型[列级别约束条件] [默认值],
...
[表级别约束条件]
);
比如
CREAT TABLE tb_emp1
(
id INT(11)
name VARCHAR(25)
depid INT(11),
salary FLOAT
);
2、使用主键约束
id INT(11) PRIMARY KEY
或者在定义完之后使用:
PRIMARY KEY(id)
3、多字段联合主键
PRIMARY KEY(name,deptid)
使用外键约束
使用外键约束:
1、外键用来在两个表的数据之间建立连接,他可以是一列或者多列。
2、一个表可以有一个或多个外键。
3、外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每一个外键值必须等于
另一个表中主键的某个值。
4、外键:首先他是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。
5、外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联
关系的行。
主表(父表):对于具有关联关系的两个表而言,相关联字段中主键所在的那个表为主表。
从表(子表):外键所在的那个表为从表。
外键的定义格式:
[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [ ,字段名2,...]
REFERENCES <主表名> 主键列1 [,主键列2,...]
例子:CONSTRAINT 外键名字 FOREIGN KEY(deptId) REFERENCES 表名(id)
depId 是本表某个字段,id是关联的主表的主键。
使用非空约束
非空约束(Not Null Constraint)是指字段的值不能为空。
语法规则:
字段名 数据类型 NOT NULL
例子:
name VARCHAR(25) NOT NULL
使用唯一性约束
唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值。
唯一性约束可以保证一列或者几列不出现重复值
语法规则:
字段名 数据类型 UNIQUE
例子:
name VARCHAR(25) UNIQUE
UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明为UNIQUE,但是只能有一个PRIMARY KEY声明
声明为PRIMARY KEY的列不允许有空值,但是声明为UNIQUE可以允许一个空值(NULL)
使用默认约束
默认约束(Default Constraint)可以指定某列的默认值。
规则:
字段名 数据类型 DEFAULT 默认值
例子:
depId int(11) DEFAULT 1111
设置表的属性值自动增加
1、在每次插入新纪录时,系统会自动生成字段的主键值,这种功能可以通过为
表主键添加AUTO_INCREMENT关键字来实现。默认初始值为1,每增加一条
记录,其值加1.
2、一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。
3、AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLINT、INT、BIGINT)等
语法规则:
字段名 数据类型 AUTO_INCREMENT
3.2 查看数据表结构
查看表的基本结构语句DESCRIBE
用DESCRIBE/DESC语句可以查看表的字段信息,其中包括字段名、字段数据类型、
是否是主键、是否有默认值等
语法结构:
DESCRIBE 表名;
DESC 表名;
Field Type Null
字段名 数据类型 是否可以存储Null值
Key Default Extra
该列是否已编制索引 该列是否有默认值 附加信息,如AUTO_INCREMENT
PRI表示该列是主键一部分 如果有,值是多少
UNI表示该列是UNIQUE索引的一部分
MUI表示在列中某个给定值允许出现多次
查看表的基本结构语句SHOW CREATE TABLE
1、用SHOW CREATE TABLE语句可以显示创建表时的CREATE TABLE语句
语法格式:
SHOW CREATE TABLE <表名\G>
加\G可使显示结果更加直观
2、使用SHOW CREATE TABLE语句,不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码
3.3 修改数据表
1、修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
TO 可省略
ALTER TABLE name1 RENAME name2
2、修改字段的数据类型
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
ALTER TABLE table_name MODIFY name VARCHAR(30);
3、修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
ALTER TABLE table_name CHANGE location loc VARCHAR(50);
4、添加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型>
[约束条件] [FIRST | AFTER 已存在的字段名];
FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段
AFTER 为可选参数,其作用是将新添加的字段添加到指定的“已存在字段”后面
ALTER TABLE table_name ADD managerID INT(10);
在字段的最后添加
ALTER TABLE table_name ADD column1 VARCHAR(20) not null;
非空约束
ALTER TABLE table_name ADD column2 INT(10) FIRST;
添加为第一个字段
ALTER TABLE table_name ADD column3 INT(10) AFTER 字段名;
在某个字段之后添加
5、删除字段
ALTER TABLE <表名> DROP 字段名;
6、修改字段的排列位置
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
7、更改表的存储引擎
ALTER TABLE <表名> ENGINE =<修改之后的存储引擎名>;
8、删除表的外键约束
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
3.3 删除数据表
1、删除没有被关联的表
DROP TABLE [IF EXISTS] 表1,表2,...表n;
2、删除被其他表关联的主表
数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。
原因是如果直接删除,将会破坏表的参照完整性。可以先删除子表,再删除父表。
或者先解开外键约束,再删除父表。
ALTER TABLE table_name DROP FOREIGN KEY 外键名字;
DROP TABLE 父表名字;