基础

启动

1
2
service mysqld start  #开启 centos7以下版本
chkconfig mysqld on #设置开机自启

连接数据库

1
2
3
4
5
6
7
本地连接:
mysql -u用户名 -p
输入密码

远程连接:
mysql -hIP地址 -P端口 -u用户 -p
输入密码

sql及其规范

  1. 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写建议命令大写,数据库名称、表名称、字段名称全部小写,用反引号括起来

  2. SQL语句可单行或多行书写,以“;”结尾。关键词不能跨多行或简写。

  3. 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。

  4. 单行注释:-- 多行注释:/*......*/

语句

数据库

创建库

1
CREATE  {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
1
mysql> CREATE DATABASE IF NOT EXISTS `mydb`;

查看有哪些数据库:

1
SHOW DATABASES;
1
2
3
4
5
6
7
8
9
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+

删除数据库

1
DROP {DATABASE | SCHEMA} [IF EXISTS] dbname;
1
2
mysql> DROP DATABASE `mydb`;
mysql> DROP DATABASE IF EXISTS `mydb`;

打开数据库

1
USE 数据库名称

判断在哪个数据库里

1
SELECT DATABASE();
1
2
3
4
5
6
7
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)

数据类型

CHAR的长度是固定的,而VARCHAR2的长度是可以变化的

数据表

查看数据表列表

1
2
3
4
5
6
7
SHOW TABLES [FROM db_name]

SHOW TABLES
查看当前数据库中的数据表。

SHOW TABLES FROM 'mysql'
查看mysql这个数据库中的数据表。

查看数据表结构

1
2
3
DESCRIBE tb_name;

SHOW COLUMNS FROM 'tb_name';
1
2
3
4
5
6
7
8
mysql> DESCRIBE `tb1`;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除数据表

1
DROP TABLE 'tablename';

创建数据表

1
2
3
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
)
1
2
3
4
5
mysql> CREATE TABLE `tb1`(
-> `id` INT,
-> `name` VARCHAR(20)
-> );
Query OK, 0 rows affected (0.02 sec)

修改数据表结构

添加单列
1
2
ALTER TABLE tb1_name ADD [COLUNM] col_name
column_definition [FIRST|AFTER col-name]
1
2
3
4
5
6
7
8
9
10
11
12
例:
mysql> ALTER TABLE `tb1`
-> ADD `age` INT
-> ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE `tb1`
-> ADD `number` INT FIRST
-> ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
添加多列
1
2
ALTER TABLE tbl_name ADD [COLUMN]
(col_name column_definition,...)
1
2
3
4
5
6
7
8
例:
mysql> ALTER TABLE `tb1`
-> ADD (`aa` INT,
-> `bb` INT,
-> `cc` INT
-> );
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
删除数据表中的列
1
ALTER TABLE tbl_name DROP [COLUMN] col_name ;
1
2
3
4
5
6
7
8
9
10
11
12
13
例:
mysql> ALTER TABLE `tb1`
-> DROP `aa`
-> ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE `tb1`
-> DROP `bb`,
-> DROP `cc`
-> ;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
向数据表中输入数据
1
INSERT [INTO] tb1_name [(col_name,..)] VALUES(val,...)
1
2
3
4
5
6
7
例:
mysql> INSERT INTO `tb1`(`id`,`name`)
-> VALUES(1,'rose'),
-> (2,'taka')
-> ;
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

查询数据

1
2
3
4
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
1
select * from runoob_tbl;