您的位置:首页 > 数据库 > MySQL

MySQL学习笔记(一)

2015-11-20 15:30 555 查看
1.MySQL

启动服务:
net start mysql


停止服务:
net stop mysql


登录:
mysql -uroot -p -P3306 -h127.0.0.1


退出:

mysql > exit;


mysql > quit;


mysql > \q;


2.修改MySQL提示符

连接客户端时通过参数指定:

shell>mysql -uroot -pxxxx --prompt 提示符


连接上服务端后,通过prompt命令修改:

mysql>prompt 提示符


3.MySQL提示符

参数描述
\D完整的日期
\d当前数据库
\h服务器名称
\u当前用户
4.MySQL常用命令

显示当前服务器版本

SELECT VERSION();


显示当前日期时间

SELECT NOW();


显示当前用户

SELECT USER();


5.MySQL语句的规范

(1)关键字与函数名称全部大写

(2)数据库名称、表名称、字段名称全部小写

(3)SQL语句必须以分号结尾

6.创建数据库

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;


7.查看当前服务器下的数据库列表

SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr];


8.修改数据库默认编码

ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name;


9.删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;


10.数据类型

数据类型是指列、存储过程参数、表达式和局部变量的数据特征,他决定了数据的存储格式,代表了不同的信息类型。

11.查询当前数据库

SELECT DATABASE();


12.创建数据表

CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
...
)


13.查看数据表列表

SHOW TABLES [FROM db_name]
[LIKE 'pattern' | WHERE expr]


14.查看数据表结构

SHOW COLUMNS FROM tb_name


15.插入记录

INSERT [INTO] tb_name[(col_name,...)] VALUES(val,...)


16.记录查找

SELECT expr,... FROM tb_name


17.空值与非空

NULL,字段值可以为空

NOT NULL,字段值禁止为空

18.AUTO_INCREMENT

自动编号,且必须与主键组合使用

默认情况下,起始值为1,每次的增量为1

19.UNIQUE

唯一约束可以保证记录的唯一性

唯一约束的字段可以为空值(NULL)

每张数据表可以存在多个唯一约束

20.DEFAULT

默认值

当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

21.约束

(1)约束保证数据的完整性和一致性

(2)约束分为表级约束和列级约束

(3)约束类型包括

NOT NULL(非空约束) PRIMARY KEY(主键约束) UNNIQUE KEY(唯一约束) DEFAULT(默认约束) FOREIGN KEY(外键约束)

22.FOREIGN KEY

保持数据一致性,完整性。

实现一对多或一对一关系。

23.外键约束的要求

(1)父表和子表必须使用相同的存储引擎,而且禁止使用临时表。

(2)数据表的存储引擎只能为InnoDB。

(3)外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。

(4)外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

24.编辑数据表的默认存储引擎

MySQL配置文件

default-storage-engine=INNODB

25.查看表的配置信息

SHOW CREATE TABLE tb_name;


26.外键约束的参照操作

(1)CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行

(2)SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

(3)RESTRICT:拒绝对父表的删除或更新操作

(4)NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

27.表级约束和列级约束

对一个数据列建立的约束,称为列级约束

对多个数据列建立的约束,称为表级约束

列级约束既可以在列定义是声明,也可以在列定义之后声明表级约束只能在列定义后声明

28.修改数据表

(1)添加单列

ALTER TABLE tb_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]


(2)添加多列

ALTER TABLE tb_name ADD [COLUMN](col_name col_definition,...)


(3)删除列

ALTER TABLE tb_name DROP [COLUMN] col_name


(4)添加主键约束

ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type](index_col_name,...)


(5)添加唯一约束

ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (index_col_name,...)


(6)添加外键约束

ALTER TABLE tb_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name](index_col_name,...) reference_definition


(7)添加/删除默认约束

ALTER TABLE tb_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}


(8)删除主键约束

ALTER TABLE tb_name DROP PRIMARY KEY


(9)删除唯一约束

ALTER TABLE tb_name DROP {INDEX | KEY} index_name


(10)删除外键约束

ALTER TABLE tb_name DROP FOREIGN KEY fk_symbol


(11)修改列定义

ALTER TABLE tb_name MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name]


(12)修改列名称

ALTER TABLE tb_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]


29.数据表更名

方法一:
ALTER TABLE tb_name RENAME [TO | AS] new_tb_name


方法二:
RENAME TABLE tb_name TO new_tb_name[,tb_name2 TO new_tb_name2]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql