MySQL学习笔记1

【启动MySQL服务】
net start mysql
【关闭MySQL服务】
net stop mysql
【MySQL退出】
mysql > exit;
mysql > quit;
mysql > \q;
【修改MySQL提示符】
连接客户端时通过参数指定:
shell>mysql -uroot -proot --prompt 提示符
连接上客户端后,通过prompt命令修改
mysql>prompt 提示符
【MySQL提示符】
\D : 完整的日期
\d : 当前数据库
\h : 服务器名称
\u : 当前用户
-->可以设置提示符为\u@\h \d
【MySQL常用命令】
显示当前服务器版本:
SELECT VERSION();
显示当前日期时间:
SELECT NOW();
显示当前用户:
SELECT USER();
【MySQL语句的规范】
关键字与函数名称全部大写
数据库名称、表名称、字段名称全部小写
SQL语句必须以分号结尾
【创建数据库】
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
【查看当前服务器下的数据库列表】
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr]
【修改数据库】
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name
【删除数据库】
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
【整型】
TINYINT(1byte),SMALLINT(2byte),MEDIUMINT(3byte),INT(4byte),BIGINT(8byte)
【浮点型】
FLOAT[(M,D)],DOUBLE[(M,D)]      (M:总位数,D:小数点后面的位数)
【日期时间型】
YEAR(1byte),TIME(3byte),DATE(3byte),DATETIME(8byte),TIMESTAMP(4)
【字符型】
CHAR(M),VARCHAR(M),TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT,ENUM('value1','value2',...),SET('value1','value2',...)
【USE】
打开数据库
USE 数据库名称;
【创建数据表】
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
...
);
范例:
mysql> CREATE TABLE tb1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );
【查看数据表列表】SHOW TABLES
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
【查看数据表结构】SHOW COLUMNS
SHOW COLUMNS FROM tbl_name
【INSERT】
插入记录
INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...)
【SELECT】
记录查找
SELECT expr,... FROM tbl_name
范例:SELECT * FROM tb1;
【空值与非空】
NULL,字段值可以为空
NOT NULL,字段值静止为空
范例:
mysql> CREATE TABLE tb2 (
    -> username VARCHAR(20) NOT NULL,
    -> age TINYAGE UNSIGNED NULL
    ->);
  这里,username不能为空,age可以为空。
【AUTO_INCREMENT】
自动编号,且必须与主键组合使用
默认情况下,起始值为1,每次的增量为1
【PRIMARY KEY(主键)】
主键约束
每张数据表只能存在一个主键
逐渐保证记录的唯一性
主键自动为NOT NULL
范例:
mysql> CREATE TABLE tb3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(30) NOT NULL
    -> );
【UNIQUE KEY(唯一约束)】
唯一约束
唯一约束可以保证记录的唯一性
唯一约束的字段可以为空值(NULL)
每张数据表可以存在多个唯一约束
【DEFAULT(默认约束)】
默认值
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
【约束】
1.约束保证数据的完整性和一致性。
2.约束分为标记约束和列级约束。
3.约束类型包括:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
【FOREIGN KEY】
保持数据一致性,完整性。
实现一对一或一对多关系。
【外键约束的要求】
1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2.数据表的存储引擎只能为InnoDB。
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否具有符号位必须相同;而字符的长度则可以不同



4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
【编译数据表的默认存储引擎】
MySQL配置文件
default-storage-engine=INNODB
外键范例:
mysql> CREATE TABLE province(
    -> id SMALLINT(5) UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> pname VARCHAR(20) NOT NULL,
    -> );
mysql> CREATE TABLE users(
    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    -> username VARCHAR(10) NOT NULL,
    -> pid SMALLINT UNISGNED,
    -> FOREIGN KEY (pid) REFERENCES provinces (id)
    -> );
【外键约束的参照操作】
1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL。
3.RESTRICT:拒绝对父表的删除或更新操作。
4.NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值