1.启动和关闭MySQL服务:
启动:net start mysql
关闭:net stop mysql
2.查看MySQL版本:
mysql -V
3.登录数据库:
mysql -uroot -proot -P3306 -h127.0.0.1
注意:-uroot中的root是用户名,-proot中的root是密码,-P3306中的3306是端口号,-h127.0.0.1中的127.0.0.1是服务器地址
4.退出登录(3种命令):
exit;
quit;
\q;
5.修改MySQL提示符:
(1)mysql -uroot -proot --prompt \h
注意:第一个root是用户名,第二个root是密码;(如果已经登录则用:prompt \h)修改之前按回车提示符是“mysql >”,修改之后变成“localhost”.
-D 完整的日期
-d 当前数据库
-h 服务器名称
-u 当前用户
(2)prompt mysql >
作用:将(1)中修改过的提示符,改回为“mysql >”.
6.MySQL常用命令:
显示当前数据库版本:SELECT VERSION();
显示当前日期时间:SELECT NOW();
显示当前用户:SELECT USER();
7.MySQL语句的规范:
关键字与函数名称全部大写;
数据库名称、表名称、字段名称全部小写;
SQL语句必须以分号结尾;
8.创建数据库
CREATE DATABASE t1;
提示:t1为要创建的数据库名称。如果数据库t1已经存在会产生错误,所以最好用:CREATE DATABASE IF NOT EXISTS t1; 这时只会产生警告。查看警告:SHOW WARNINGS; 查看创建时的字符编码SHOW CREATE DATABASE t1;
创建数据库的同时指定编码:CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET GBK;
9.显示所有数据库
SHOW DATABASES;
10.修改数据库
ALTER DATABASE t2 CHARACTER SET = utf8;
11.删除数据库
DROP DATABASE IF EXISTS t2;
12.打开数据库
USE t2;
13.创建数据表
CREATE TABLE IF NOT EXISTS tb1;
14.查看数据表
SHOW TABLES FROM 数据库名称;
15.查看当前数据库
SELECT DATABASE();
16.查看数据表结构
SHOW COLUMNS FROM tb1_name;
17.插入记录
INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...);
提示:中括号内的内容可以省略
18.记录查找
SELECT expr,... FROM tbl_name;
19.非空
NOT NULL
20.自增
AUTO_INCREMENT
提示:只能与主键一起使用,主键必须是整型或者浮点型(n,0),反之主键不一定要和自增一起使用。
21.主键
PRIMARY KEY
提示:保证记录的唯一性,一张数据表只能有一个主键,不能为空
22.唯一约束
UNIQUE KEY
提示:保证记录的唯一性,唯一约束字段可以为空值,每张数据表可以存在多个唯一约束
23.无符号
UNSIGNED
24.默认值
DEFAULT
提示:当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
25.约束
(1)约束保证数据的完整性和一致性
(2)约束分为表级约束和列级约束
列级约束:对一个数据列建立的约束
表级约束:对多个数据列建立的约束
提示:列级约束既可以在列定义时声明,也可以在列定义后声明;表级约束只能在列定义后声明。实际开发中列级约束比较常用。
(3)约束类型包括
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
26.外键约束:保持数据一致性完整性,实现一对一或一对多关系
要求:(1)父表(参照列的表)和子表(具有外键列的表)必须使用相同的存储引擎,而且禁止使用临时表;(2)数据表的存储引擎只能为InnoDB;(3)外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同;(4)外键列和参照列必须创建索引。如果参照列不存在索引的话,MySQL将自动创建索引,如果外键列不存在索引,MySQL不会自动创建索引。
27.查看索引
SHOW INDEXES FROM tbl_name \G;
提示:\G表示以网格的形式展示
28.外键约束的参照操作
(1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;ON DELETE CASCADE级联删除
(2)SET NULL:从父表删除或更新行,并设置子表外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL;
(3)RESTRICT:拒绝对父表的删除或更新操作;
(4)NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。
29.删除记录
DELETE FROM tbl_name WHERE col_name = col_value;