本文共 2731 字,大约阅读时间需要 9 分钟。
数据库表的设计是数据库开发的基础,以下是创建表的规范:
int
用于整数,varchar
用于可变字符串)。示例:
CREATE TABLE `user_info` ( `user_id` INT(5) PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID', `username` VARCHAR(20) NOT NULL COMMENT '用户名', `email` VARCHAR(100) UNIQUE KEY COMMENT '电子邮箱');
通过ALTER TABLE
命令修改表结构。
ALTER TABLE `bill` RENAME AS `bill_info`;
ALTER TABLE `bill_info` ADD COLUMN `telephone` VARCHAR(11) NOT NULL COMMENT '手机号';
ALTER TABLE `bill_info` MODIFY COLUMN `user_status` CHAR(3);
ALTER TABLE `bill_info` CHANGE `order_no` TO `bill_number` VARCHAR(10) COMMENT '订单编号';
ALTER TABLE `bill_info` DROP COLUMN `email`;
有效的查询需根据业务需求设计。
WHERE
子句加括号优化逻辑表达式。IN
操作:将多个值传递至字段时使用IN
。示例:
-- 查询工资不低于12000的员工信息:SELECT e.employee_id, CONCAT(first_name, '.', last_name) AS employee_name, salary, department_id FROM employees e WHERE salary >= 12000;-- 判断字段是否为空:SELECT * FROM employees WHERE commission_pct IS NULL;-- 判断字段不为空:SELECT * FROM employees WHERE commission_pct IS NOT NULL;-- 查询部门编号为20、30、40、50、80的部门员工:SELECT * FROM employees WHERE department_id IN (20, 30, 40, 50, 80);-- 查询不属于上述部门的员工:SELECT * FROM employees WHERE department_id NOT IN (20, 30, 40, 50, 80);
数据库连接是多表查询的基础,需明确连接条件。
等值连接:
SELECT e.employee_id, e.last_name, e.salary, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id;
自连接:
用于权限或组织架构问题,需确保字段关联合理:SELECT e1.employee_id, e2.last_name, e2.salary FROM employees e1 JOIN employees e2 ON e1.manager_id = e2.employee_id WHERE e1.last_name = 'Austin';
ORDER BY
用于确定结果排序方式。
示例:
-- 按绩效结果排序,取前四名:SELECT s.stu_no, s.stu_name, su.subj_name, re.result FROM subjects su, result re, students st WHERE su.subj_no = re.subj_no AND re.stu_no = st.stu_no AND su.subj_name = '数据库结构-2' ORDER BY re.stu_result DESCLIMIT 3, 3;
MySQL提供丰富系统函数,常用于数据计算和处理。
数值函数:如ROUND
、MOD
用于数据格式化:
ROUND(123.55, 1), MOD(11, 4), RAND(), TRUNCATE(123.55, 1) FROM DUAL;
字符串函数:如CONCAT
、SUBSTRING
用于文本操作:
CONCAT('hello-', 'mysql'), SUBSTRING('hellomysql', 2, 4) FROM DUAL;
日期函数:用于时间数据处理:
DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s'), CURRENT_DATE() FROM DUAL;
索引是性能的重要加速手段,需谨慎设计。
删除索引:
-- 删除表中唯一约束:SHOW INDEXES FROM emp3;-- 使用`ALTER TABLE`删除索引:ALTER TABLE emp3 DROP INDEX emp3_name_email_uk;
外键负责表间关系管理,需严格遵守数据库规范。
创建外键:
CREATE TABLE emp5 ( emp_id INT(6), emp_name VARCHAR(32) NOT NULL, emp_email VARCHAR(100), dept_id INT(6), CONSTRAINT emp5_id_pk PRIMARY KEY (emp_id), CONSTRAINT emp5_dept_id_fk FOREIGN KEY (dept_id) REFERENCES dept1(dept_id) ON DELETE CASCADE);
外键命名规范:外键命名应包含表名和字段名,便于管理和追溯。
通过合理设计和优化数据库操作,可以显著提升应用性能和维护效率。
转载地址:http://jyvkk.baihongyu.com/