MySQL的简单使用
MySQL 参数
参数 | 描述 | 备注 |
-D,--database=、name | 打开指定数据库 | mysql –uroot –procky –Dhisdb 或者mysql –uroot –procky --database=hisdb root:用户名rocky:密码hisdb:数据库名称 |
--delimiter=name | 指定分隔符 | |
-h, --host=name | 指定服务器名称 | 同上,本地服务器可以用127.0.0.1或者localhost |
-p, --password=name | 密码 | mysql –uroot –procky 或者mysql –uroot --password=rocky |
-P, --port=# | 端口号 | 默认是端口号是my.ini配置中的数字 |
--prompt=name | 设置提示符 | 登陆后也可以使用prompt [提示符]的方法修改提示符 |
-u, --user=name | 用户名 | 同上 |
-V, --version | 输出版本信息并且退出 |
备注:所有参数注意大小写
MySQL 退出
登陆到mysql 后。输入以下命令即可退出mysql
mysql > exit;
mysql > quit;
mysql > \q;
MySQL 提示符参数
参数 | 描述 |
\D | 完整日期 |
\d | 当前数据库名称 |
\h | 当前服务器名称 |
\u | 当前用户 |
MySQL 常用命令
命令 | 描述 |
SELECT VERSION() | 显示当前服务器的版本号 |
SELECT NOW() | 显示当前日期 |
SELECT USER() | 显示当前用户 |
SHOW {DATABASES|SCHEMAS} [LIKE 'pattern' | WHERE expr | 查看当前服务器的数据库列表 |
SHOW WARNINGS | 查看警告信息 |
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name | 修改数据库的编码方式 |
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name | 删除数据库 |
SHOW DATABASES | 显示数据库 |
SHOW TABLES [FROM db_name] | 显示数据表 |
SHOW COLUMNS FROM tb_name | 查看数据表的结构 |
MySQL 语句规范
- 关键字与函数名称全部大写
- 数据库名称、表名称、字段名称全部小写
- SQL语句必须以分号结尾
创建数据库
格式:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] chartset_name
范例:CREATE DATABASE hisdb;
说明:DATABASE 和SCHEMA完全相同,任选其一即可。
IF NOT EXISTS 假设创建的数据库存在,就不创建
DEFAULT CHARACTER 数据库的编码方式。
修改数据表
添加单列
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definiton [FIRST | AFTER col_name]
FIRST表示新添加的列位于最前面,AFTER col_name表示在某一列后面,默认添加到最后一列
添加多列
ALTER TABLE tbl_name ADD [COLUMN] (col_name column_difinition, col_name column_difinition);
删除列
ALTER TABLE tbl_name DROP col_name
修改列定义
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER colname]
修改列名称
ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FRIST|AFTER col_name]
修改数据表名称
- ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
- RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_nme]…
自动编号
自动编号必须跟主键组合使用,默认情况下,起始值为1,增量为1.
主键
主键约束
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL
CREATE TABLE tb2 ( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL);
唯一约束
CREATE TABLE tb3 (id SMALLINT UNSIGNED UNIQUE KEY,
username VARCHAR(20) NOT NULL);
默认值
约束
约束分为表级约束和列级约束。表级约束表示约束两个或两个以上的字段列级约束表示约束一个字段,表级约束只能在列定义后声明
外键约束的条件
- 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。子表具有外键列的表,子表所参照的表称为父表。
- 数据表的存储引擎只能为InnoDB。
- 外键列和参照列必须具有相同的数据类型,其中数字的长度或是否有符号位必须相同,而字符串的长度则可以不同。
- 外键列和参照列必须创建索引,如果外键列不存在索引的话MySQL将自动创建索引。参照列不会自动创建索引。
外键约束的参照操作
- SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL,如果使用该选项,必须保证子表列没有指定的NOT NULL
- RESTRICT:拒绝对父表的删除或更新操作
- NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同
修改约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,……)
ALTER TABLE tabl_name DROP {INDEX|KEY} index_name
INSERT
INSERT [INTO] tbl_name [(tbl_column,…)] {VALUES|VALUE} (expr|DEFAULT,…),(……)
INSERT [INTO] tbl_name SET col_name={expr | DEFAULT},…