股票查询系统
使用sql创建一个database,名称为:stock,在stock中创建一个表,名称为:stocks,
表中的各个字段为:
stock_code 最大6位整数数字,必须填写
stock_name, 最大20个汉字,必须填写
category, 最大20个汉字
introduction,最大20000个汉字
pinyin_initials, 最大20个字母
请给出SQL语句来。
CREATE DATABASE IF NOT EXISTS stock;
USE stock;
CREATE TABLE IF NOT EXISTS stocks (stock_code VARCHAR(6) NOT NULL,stock_name VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,category1 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,category2 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,category3 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,introduction TEXT(20000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,pinyin_initials VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,record_date DATE NULL,PRIMARY KEY (stock_code)
);
索引优化:确保远程数据库中的 stock_name、stock_code 和 pinyin_initials 字段上有合适的索引。
索引可以加快查询速度,减少数据库的扫描范围。例如,在 MySQL 中可以使用以下语句创建索引:
CREATE INDEX idx_stock_name ON stocks (stock_name);
CREATE INDEX idx_stock_code ON stocks (stock_code);
CREATE INDEX idx_pinyin_initials ON stocks (pinyin_initials);
你可以使用以下 SQL 语句查看 stocks
表中已有的索引:
SHOW INDEX FROM stocks;
用Python写一个程序,可以读取CSV文件,文件的第1列为stock_code,第2列为stock_name,如果有第3列,则第3列为category,
把CSV文件中的各行数据全部导入到上面的数据库中。
连接数据库的信息为:
# 数据库连接配置
db_config = {
'host': '192.168.137.130',
'user': 'root',
'password': '12345678',
'database': 'stock'
}
1. 查询表中数据的数量
-- 切换到 stock 数据库
USE stock;
-- 查询 stocks 表中的记录数量
SELECT COUNT(*) FROM stocks;
2. 查询第一条数据的内容
-- 切换到 stock 数据库
USE stock;
-- 查询按照 stock_code 升序排序后的第一条数据
SELECT * FROM stocks ORDER BY stock_code ASC LIMIT 1;
使用 DELETE 语句 DELETE 语句是一条 DML(数据操作语言)语句,它会逐行删除表中的数据,并且会记录每一行的删除操作到事务日志中。这意味着在删除大量数据时,DELETE 操作可能会比较慢,不过它可以配合 WHERE 子句来有选择性地删除数据。
-- 切换到 stock 数据库
USE stock;
-- 删除 stocks 表中的所有数据
DELETE FROM stocks;
使用 TRUNCATE 语句 TRUNCATE 语句是一条 DDL(数据定义语言)语句,它会直接删除整个表的数据页,而不是逐行删除数据,因此速度通常比 DELETE 快。但它不能使用 WHERE 子句进行条件删除,会直接清空整个表。
-- 切换到 stock 数据库
USE stock;
-- 清空 stocks 表
TRUNCATE TABLE stocks;
SQL删除stocks表和表中的所有的内容
删除表及其所有内容
-- 切换到 stock 数据库
USE stock;
-- 删除 stocks 表
DROP TABLE IF EXISTS stocks;
--------------------------
连接数据库时,配置中如果有'charset': 'utf8mb4',容易导致程序报错,例如:数据库操作或文件操作出错: Character set '255' unsupported,此时删除这一行即可。
# 远程 MySQL 数据库连接配置
mysql_config = {'host': '118.178.92.143','user': 'read_only_user','password': 'Reading_Stocks%6688','database': 'stock','charset': 'utf8mb4'
}
下面的配置,可以正常运行。
# 远程 MySQL 数据库连接配置
mysql_config = {'host': '118.178.92.143','user': 'read_only_user','password': 'Reading_Stocks%6688','database': 'stock','use_unicode': True
}
尤其是在SQLite复制MYSQL5.7数据库的数据时。
--------------------------