deepin下安装教程
mac 下安装教程
参考 https://blog.csdn.net/w605283073/article/details/80417866
https://www.runoob.com/mysql/mysql-install.html
查看数据库命令
brew install mysql
brew services start mysql
启动:
mysql.server start
mysql -u root -p
重置root密码
mysqladmin -u root password "new_password";
mysql>show databases;//可以查看有哪些数据库,返回数据库名(databaseName)
教程
数据库的创建与修改
创建删除数据库
菜鸟教程:http://www.runoob.com/mysql/mysql-create-database.html
create DATABASE RUNOOB; //创建一个名为 RUNOOB的数据库
解决中文问题:
create DATABASE yqy CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
drop database RUNOOB; //删除一个名为 RUNOOB的数据库
选择了 RUNOOB 数据库,在后续的操作中都会在 RUNOOB 数据库中执行
use RUNOOB;
数据类型
http://www.runoob.com/mysql/mysql-data-types.html
创建删除数据表
以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name column_type);创建一个表单 表单名字(列名,列的类型)以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
实例解析:
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
删除 DROP TABLE table_name ;
插入数据
语法: INSERT INTO table_name ( field1, field2,…fieldN ) VALUES ( value1, value2,…valueN );实例:```bash mysql> use RUNOOB; Database changed mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> (“学习 PHP”, “菜鸟教程”, NOW()); Query OK, 1 rows affected, 1 warnings (0.01 sec) mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> (“学习 MySQL”, “菜鸟教程”, NOW()); Query OK, 1 rows affected, 1 warnings (0.01 sec) mysql> INSERT INTO runoob_tbl -> (runoob_title, runoob_author, submission_date) -> VALUES -> (“JAVA 教程”, “RUNOOB.COM”, ‘2016-05-06’); Query OK, 1 rows affected (0.00 sec) mysql>
<a name="0d7a0d5c"></a>
#### 读取数据表
`select * from runoob_tbl;`<br />![image.png](https://cdn.nlark.com/yuque/0/2019/png/164272/1546697210304-550559c7-6e72-43d9-95be-9e5125616b15.png#align=left&display=inline&height=164&name=image.png&originHeight=164&originWidth=580&size=18249&status=done&width=580)
<a name="4170abe6"></a>
### 数据库的查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件。Clause 是条件的意思
- 你可以使用 limit 属性来设定返回的数据条数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
> SELECT field1, field2,...fieldN FROM table_name1, table_name2...> [WHERE condition1 [AND [OR]] condition2.....
**可以并推荐使用括号**
```bash
mysql> SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程' and runoob_id=1 or runoob_id=3;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 1 | 学习 PHP | 菜鸟教程 | 2019-01-05 |
| 3 | JAVA 教程 | RUNOOB.COM | 2016-05-06 |
+-----------+--------------+---------------+-----------------+
2 rows in set (0.00 sec)
mysql> SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程' and (runoob_id=1 or runoob_id=3);
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 1 | 学习 PHP | 菜鸟教程 | 2019-01-05 |
+-----------+--------------+---------------+-----------------+
1 row in set (0.02 sec)
like匹配
https://blog.csdn.net/nangeali/article/details/74858171?foxhandler=RssReadRenderProcessHandler
使用% (粗匹配)或 _ (细匹配),使用反斜杠\转义,可以混合使用,LIKE之前,可以使用NOT关键字查询不匹配的数据。
pymysql
连接并查询
http://www.runoob.com/python3/python3-mysql.html
#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","a123123","RUNOOB" )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM runoob_tbl \
WHERE runoob_id > %s" % (2)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
ids = row[0]
title = row[1]
author = row[2]
# 打印结果
print ("id=%s,title=%s,author=%s" % \
(ids, title, author))
except:
print ("Error: unable to fetch data")
# 关闭数据库连接
db.close()
其他
查看数据库存放位置
show global variables like “%datadir%”;