mysql [-h 主机名] -u用户名 -p密码 [-P端口号] [-D数据库名]
[-h主机名或ip地址]或者[–host=主机名ip地址]:指定登录的主机名;
[-u用户名]或者[–user=用户名]:指定用户登录的用户名;
[-p密码(p小写)]或者[–password=密码]:输入登录密码;
[-P端口号(P大写)]或者[–port=端口号]:指定登录的MySQL的端口号;
[-D数据库名]或者[–database=数据库名]:指定登录的数据库名称;
mysql -u root -p

mysqladmin -u root -p password <新的密码>
// 示例
mysqladmin -u root -p password 1111

| 名称 | 语句 | 命令 |
|---|---|---|
| DDL (数据定义语言) | 定义和管理数据对象, 如创建数据库,创建数据表等 | CREATE、DROP、ALTER |
| DML (数据操作语言) | 用于操作数据库对象中所包含的数据 | INSERT、UPDATE、DELETE |
| DQL (数据查询语言) | 用于查询数据库数据 | SELECT |
| TCL (事务控制语言) | 确保被DML语句影响的表的所有行及时得以更新 | COMMIT、 SAVEPOINTROLLBACK |
| DCL (数据控制语言) | 用来管理数据库的语言, 包括管理权限及数据更改 | GRANT、REVOKE |
CREATE DATABASE [IF NOT EXISTS] 数据库名;
[IF NOT EXISTS] :如果这个数据库不存在,才执行创建命令,否则不执行这条语句
CREATE DATABASE IF NOT EXISTS 数据库名;
// 示例
CREATE DATABASE IF NOT EXISTS student;
SHOW DATABASES ;
USE 数据库名 ;
// 示例
USE mysql ;
DROP DATABASE [IF EXISTS] 数据库名;
// 示例
DROP DATABASE IF EXISTS student;
CREATE TABLE [ IF NOT EXISTS ] `表名`;
// 示例
CREATE TABLE IF NOT EXISTS `student`;
| 类型 | 说明 | 取值范围 | 存储需求 |
|---|---|---|---|
| TINYINT[(M)] | 非常小的数据 | 有符值: -27 ~ 27-1 无符号值:0 ~ 28-1 | 1字节 |
| SMALLINT[(M)] | 较小的数据 | 有符值: -215 ~ 215-1 无符号值: 0 ~ 216-1 | 2字节 |
| MEDIUMINT[(M)] | 中等大小的数据 | 有符值: -223 ~ 223-1 无符号值: 0 ~ 224-1 | 3字节 |
| INT[(M)] | 标准整数 | 有符值: -231 ~ 231-1 无符号值:0 ~ 232-1 | 4字节 |
| BIGINT[(M)] | 较大的整数 | 有符值: -263 ~263-1 无符号值:0 ~264-1 | 8字节 |
| FLOAT[(M)] | 单精度浮点数 | ±1.1754351e -38 | 4字节 |
| DOUBLE[(M)] | 双精度浮点数 | ±2.2250738585072014e -308 | 8字节 |
| DECIMAL | 字符串形式的浮点数 | decimal(m, d) | m个字节 |
| 类型 | 说明 | 最大长度 |
|---|---|---|
| CHAR[(M)] | 固定长字符串,检索快但费空间, 0 <= M <= 255 | M个字符 |
| VARCHAR[(M)] | 可变字符串 0 <= M <= 65535 | 可变长度 |
| TINYTEXT | 微型文本串 | 0-255个字符 |
| TEXT | 文本串 | 0-65535个字符 |
| 类型 | 说明 | 取值范围 |
|---|---|---|
| DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
| TIME | Hh:mm:ss ,时间格式 | -838:59:59~838:59:59 |
| DATETIME | YY-MM-DD hh:mm:ss | 1000-01-01 00:00:00 至9999-12-31 23:59:59 |
| TIMESTAMP | YYYYMMDDhhmmss格式表示的时间戳 | 197010101000000 ~2038年的某个时刻 |
| YEAR | YYYY格式的年份值 | 1901~2155 |
MySQL允许“不严格”语法:任何标点符号都可以用作日期部分之间的间隔符,如”16-06-16” ”16.06.16” ”16/06/16”都可以写入数据表
CREATE TABLE [ IF NOT EXISTS ] `表名` (
`字段名1` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 字段属性 | 约束] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [字段属性 | 约束] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
示例:
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
)COMMENT=‘测试表’;
| 字段属性 | 说明 |
|---|---|
| UNSIGNED | 无符号的,声明该数据列不允许负数。 |
| ZEROFILL | 1. 0填充的,不足位数的用0来填充,如 int(3),5则为 005; 2. 使用zerofill会默认加unsigned。 |
| AUTO_INCREMENT | 1. 自动增长的,每添加一条数据,自动在上一个记录数上加1; 2. 通常用于设置主键,且为整数类型; 3. 可定义起始值和步长 |
| NULL 和 NOT NULL | 1. 默认为NULL,即没有插入该列的数值; 2. 如果设置为NOT NULL,则该列必须有值; |
| DEFAULT | 1. 默认的,用于设置默认值; 2. 例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认为“男”的值 |
注意区分反引号(`)和单引号(')的区别