Skip to content

Mysql学习

Mysql数据库常用术语

数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
行: 一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余: 存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键: 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键: 外键用于关联两个表。
复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引: 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
表头(header): 每一列的名称。
列(col): 具有相同数据类型的数据的集合。
行(row): 每一行用来描述某条记录的具体信息。
值(value): 行的具体信息, 每个值必须与该列的数据类型相同。
键(key): 键的值在当前列中具有唯一性。

命令行操作Mysql

1、登陆Mysql

mysql -h localhost -u root -P 3306 -p 
#输入密码 Enter password:******

-h mysql连接地址

-u mysql登录用户名

-P mysql连接端口(默认为 3306)

-p mysql登录密码

2、查看数据库

show databases;

3、创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name
  [CHARACTER SET charset_name]
  [COLLATE collation_name];

4、删除数据库

DROP DATABASE db_name;  #删除

5、查询数据

SELECT * FROM tb1 WHERE name='李四';

Mysql Workbench中创建字段字符含义

  • PK(primary key): 主键
  • NN(not null): 非空
  • UQ(unique): 唯一索引
  • BIN(binary): 二进制数据(比text更大)
  • UN(unsigned): 无符号(非负数)
  • ZF(zero fill): 填充0 例如字段内容是1 int(4), 则内容显示为0001
  • AI(auto increment): 自增
  • G(generated column): 生成列

Mysql删除数据行

1.DELETE语句

MySQL中的DELETE语句用于删除一个或多个数据行。语法如下:

DELETE FROM table_name

WHERE condition;

其中,table_name是要删除数据行的表名,condition是删除数据行的条件。例如,如果要删除名为“students”的表中姓氏为“张”的学生记录,可以使用以下命令:

DELETE FROM students WHERE last_name = ‘张’;

这条命令将删除表中所有姓氏为“张”的学生记录。

2. TRUNCATE TABLE语句

TRUNCATE TABLE语句可以删除一个表中的所有数据行,并且重置自增长的主键值。语法如下:

TRUNCATE TABLE table_name;

例如,如果要删除名为“students”的表中的所有数据行,可以使用以下命令:

TRUNCATE TABLE students;

这条命令将删除表中所有数据行。

3. DROP TABLE语句

DROP TABLE语句用于删除一个表及其所有数据行。语法如下:

DROP TABLE table_name;

例如,如果要删除名为“students”的表及其所有数据行,可以使用以下命令:

DROP TABLE students;

这条命令将删除表及其所有数据行。

需要注意的是,DROP TABLE语句将永久删除表及其所有数据,因此在使用前需要谨慎考虑。

总结:在MySQL中,通过DELETE语句可以删除单个或多个数据行,TRUNCATE TABLE语句可以删除一个表中的所有数据行,并重置自增长的主键值,而DROP TABLE语句可以删除表及其所有数据行。在使用这些语句时,需要谨慎考虑,避免不必要的数据丢失。

pymysql中executemany批量插入数据

1、在写sql语句时,不管字段为什么类型,占位符统一使用%s,且不能加上引号。例如

sql="insert into tablename (id,name) values (%s,%s)

2、添加的数据的格式必须为 list[tuple(),tuple(),tuple()] 或者tuple(tuple(),tuple(),tuple()) 例如

values=[(1,"zhangsan"),(2,"lisi")]
values=((1,"zhangsan"),(2,"lisi"))

3、豆瓣Top250将电影名称、评分、评价人数保存到mysql

#保存到mysql
mysql_local = {
    'host':'localhost',
    'port':3306,
    'user':'root',
    'password':'082008271005yyh',
    'db':'movietop250',
}
#建立数据库连接
conn = pymysql.connect(**mysql_local)
cursor = conn.cursor()

def save_mysql(datalist):
    film_names = []
    scores = []
    numbers = []
    for i in range(250):
        film_names.append(datalist[i][2])
        scores.append(datalist[i][4])
        numbers.append(datalist[i][5])
    datalists = list(zip(film_names,scores,numbers))
    sql = "insert into movietop250(film_name,score,number) values(%s,%s,%s)"
    cursor.executemany(sql,datalists)   #执行数据库命令
    conn.commit()  #提交