logo头像
Snippet 博客主题

MySQL

本文于370天之前发表,文中内容可能已经过时。

MySQL

MySQL 安装 基本设置

1.mac 下载
mySQL 下载地址
2.mac 安装启动
下一步安装 (安装完成记住初始化密码)
安装完成在偏好设置 中 选择MySQL启动

3.连接数据库

1
2
mysql -uroot -p
按照提示输入密码 第一次输入初始化密码

4.密码重新设置

1
2
3
ALTER USER 'root'@'localhost' IDENTIFIED BY 'kylinhuang';

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Kylinhuang=1029755440';

MySQL 基本语法

1.数据库操作

1.1 显示 所有数据库

SHOW DATABASES;

1
2
3
4
5
6
7
8
9
10
11
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| uesr |
+--------------------+
5 rows in set (0.00 sec)

1.2 创建数据库

CREATE DATABASE 库名;

1.3 切换数据库

USE 库名;

1.4 删除数据库

DROP DATABASE 库名;
1.5 修改数据库名
修改数据库三种方法

2.表操作

1.显示 当前数据库下所有表

show tables;
1.创建表

CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

2.显示 表数据详情

desc 表名;

1
2
3
4
5
6
7
8
mysql> desc uesr;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | varchar(20) | YES | | NULL | |
| name | char(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

3.删除
3.1删除表
drop table 表名;

1
drop table workmates;

3.2 删除表中的数据
delete from 表名称 where 删除条件;

1
2
3
4
5
6
7
8
9

删除id为2的行:
delete from students where id=2;

删除所有年龄小于21岁的数据:
delete from students where age<20;

删除表中的所有数据:
delete from students;

4.修改表
4.1修改表名
alter table 表名 rename 新表名;
4.2删除列
alter table 表名 drop 列名称;
4.3修改列名
alter table 表名 change 列名称 列新名称 新数据类型;
4.4 修改 表中的数据
update 表名称 set 列名称=新值 where 更新条件;

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

1
2
3
4
5
6
7
8
将id为5的手机号改为默认的"-":
update students set tel=default where id=5;

将所有人的年龄增加1:
update students set age=age+1;

将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19:
update students set name="张伟鹏", age=19 where tel="13288097888";

5.查询
select 列名称 from 表名称 [查询条件];
也可以使用通配符 * 查询表中所有的内容, 语句:

select * from students;

1
2
3
4
5
6
7
8
9
10
11
12
mysql> select name, age from students;
+--------+-----+
| name | age |
+--------+-----+
| 王刚 | 20 |
| 孙丽华 | 21 |
| 王永恒 | 23 |
| 郑俊杰 | 19 |
| 陈芳 | 22 |
| 张伟朋 | 21 |
+--------+-----+
6 rows in set (0.00 sec)

5.1 where条件查询
select 列名称 from 表名称 where 条件;
select * from students where sex="女";

where 子句不仅仅支持 “where 列名 = 值” 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询, 以后还会学到更加高级的条件查询方式, 这里不再多做介绍。

1
2
3
4
5
6
7
8
查询年龄在21岁以上的所有人信息:
select * from students where age > 21;

查询名字中带有 "王" 字的所有人信息:
select * from students where name like "%王%";

查询id小于5且年龄大于20的所有人信息:
select * from students where id<5 and age>20;

5.2 where条件查询 WHERE…LIKE

1
2
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
你可以使用AND或者OR指定一个或多个条件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。

runoob_tbl表中获取runoob_author字段中以”jay”为结尾的的所有记录

1
SELECT * from runoob_tbl  WHERE runoob_author LIKE '%jay';

5.3 ORDER BY

1
2
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]

ASC 升序
DESC 降序

1
SELECT * from runoob_tbl ORDER BY runoob_author ASC

5.4 JOIN

MySQL的JOIN来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

root@host# mysql -u root -p password;
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> SELECT * FROM tcount_tbl;
+-----------------+----------------+
| runoob_author | runoob_count |
+-----------------+----------------+
| mahran | 20 |
| mahnaz | NULL |
| Jen | NULL |
| Gill | 20 |
| John Poul | 1 |
| Sanjay | 1 |
+-----------------+----------------+
6 rows in set (0.01 sec)
mysql> SELECT * from runoob_tbl;
+-------------+----------------+-----------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 1 | Learn PHP | John Poul | 2007-05-24 |
| 2 | Learn MySQL | Abdul S | 2007-05-24 |
| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.00 sec)
mysql>


mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count
-> FROM runoob_tbl a, tcount_tbl b
-> WHERE a.runoob_author = b.runoob_author;
+-------------+-----------------+----------------+
| runoob_id | runoob_author | runoob_count |
+-------------+-----------------+----------------+
| 1 | John Poul | 1 |
| 3 | Sanjay | 1 |
+-------------+-----------------+----------------+
2 rows in set (0.01 sec)
支付宝打赏 微信打赏

打赏