MySQL

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相同

原文地址:https://www.cnblogs.com/louisduan66/p/10777159.html