1、登录mysql
mysql -u 用户名 -p -P3306 -h 主机名
参数说明:
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的 用户名;
-p : 告诉服务器将会使用一个 密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
MySQL默认端口号:3306
2、修改MySQL提示符
连接客户端的时候通过参数指定
mysql -u密码 -p密码 --prompt 提示符
连接上客户端以后,通过prompt命令
mysql>prompt 提示符
提示符参数
D 完整日期
d 当前数据库
h 服务器名称
u 当前用户
3、MySQL语句规范
语句规范
- 关键字与函数名称全部大写
- 数据库名称、表名称、字段名称全部小写
- SQL语句必须以分号结尾
常用命令
SELECT VERSION(); 显示当前服务器版本
SELECT NOW(); 显示当前日期时间
SELECT USER(); 显示当前用户
SELECT DATABASE(); 显示当前打开的数据库
SELECT *FROM TBNAME; 显示表
SHOW WARNNINGS; 显示警告信息
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name 创建数据库
SHOW CREATE DATABASE dbname 查看数据库创建时的信息,包括编码方式
SHOW CREATE TABLE tablename 查看表创建时的信息,包括数据库引擎
SHOW COLUMNS FROM TBNAME 查看表的信息
SHOW TABLES 查看当前数据库中的表
SHOW DATABASES 查看系统中的数据库
SHOW INDEXES FROM tabelnameG 显示索引 G以网格的形式来呈现
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name 修改编码方式
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name 删除数据库
4、操作数据库
创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
{}必选;
[]可选;
| 二选一;
[IF NOT EXISTS] :如果创建一个已经存在数据库将跳过错误信息;
[DEFAULT] CHARACTER SET [=] charset_name:指定数据的编码方式
例如:
CREATE DATABASE t1; 创建一个叫t1的数据库
CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk; 创建一个叫t2的数据库,默认编码方式为gbk
查看当前服务器下的数据库列表
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr]
修改数据库编码方式
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name 修改编码方式
把数据库t2的编码方式修改为utf8
mysql>ALTER DATABASE t2 CHARACTER SET utf8;
删除数据库
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name 删除数据库
删除数据t1
mysql>DROP DATABASE t1;
5、数据类型
整型和浮点型
M是数字总位数,D是小数后面的位数。
日期和时间型
字符型
6、数据表(表)
创建数据表
行:称为记录
列:称为字段
打开数据库:
USE 数据库名称
创建数据表----列:
CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,....)
查看数据表
SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
查看数据表结构
SHOW COLUMNS FROM tb_name
MySQL记录的插入、查找、修改列值、约束
向数据表中写入记录----行
INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...) 向指定列,赋值;省略列名,为所有字段赋值
记录查找
SELECT expr,...FROM tbl_name
SELECT * FROM tb1; * 代表字段的过滤,表示全部字段
修改某一列的值
Update 语句
Update 语句用于修改表中的数据。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
更新某一行中的一个列
我们为 lastname 是 "Wilson" 的人添加 firstname:
UPDATE Person SET FirstName = 'beijing' WHERE LastName = 'shanghai'
更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'jinqiaolu', City = 'shanghai'
WHERE LastName = 'beijing'
MySQL空值与非空
- NULL,字段值可以为空
- NOT NUll,字段值禁止为空(非空约束)
自动编号
为字段添加AUTO_INCREMENT属性,保证记录的唯一性
- 自动编号,且必须与主键组合使用
- 默认情况下,起始值为1,每次的增量为1
PRIMARY KEY(主键约束)
- 主键约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为NOT NULL
UNIQUE KEY(唯一约束)
- 唯一约束
- 每张数据表可以存在多个唯一约束
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(NULL)
DEFAULT(默认约束)
- 默认值
- 当插入记录时,如果没有明确为字符段赋值,则自动赋予默认值
7、约束以及修改数据表
约束
1、约束保证数据的完整性和一致性。
2、约束分为表级约束和列级约束。(约束针对一个字段约束,称为列级约束;针对多个称为,表级约束)
3、约束按类型分为:
NOT NULL(非空约束)
PRIMARY KEY(主键约束)
UNIQUE KEY(唯一约束)
DEFAULT(默认约束)
FOREIGN KEY(外键约束)
FOREIGN KEY(外键约束)
保持数据一致性,完整性。
实现一对一或一对多关系。
Mysql外键约束的要求
1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2、数据表的存储引擎只能为InonoDB 。
3、外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度可以不同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,Mysql将自动创建索引。
编辑数据表的默认存储引擎
MySQL配置文件 my.ini
default-storage-engine=INNODB
然后重启MySQL
外键列和参照列必须具有相似的数据类型
外键约束的参照操作
1、cascade:从父表删除或者更新且自动删除或更新子表中匹配的行
2、set null:从父表删除或更新行,并设置子表中的外键行为null,如果使用该选项,必须保证子表列没有指定not null
3、restrict:拒绝对父表的删除或更新操作。
4、no action:标准SQL的关键字,在mysql中于restrict相同