-- 数据库的常用操作
-- 管理数据:查看、添加、修改、删除数据
-- 查询数据:查询所有字段、查询指定字段、查询时指定别名、查询时合并列、查询时添加常量列、查询时取出重复数据--  条件查询、分页查询、查询后排序、聚合(统计)查询、分组查询、分组后筛选(条件)、子查询
-- 数据约束
-- 约束分类:默认值、非空、唯一、主键、自增长约束、外键、级联操作
-- 数据库设计:第一范式、第二范式、第三范式
student表数据:
MySQL语句:
-- 查看数据库
SHOW DATABASES;-- 使用数据库
USE day15;-- 查看表
SHOW TABLES;SELECT * FROM student;-- 查询数学成绩大于60小于90的学生
SELECT * FROM student WHERE math BETWEEN 60 AND 90;-- 查询姓名不等于李一的学生
SELECT * FROM student WHERE NAME<>'李一';-- 为表添加一列性别默认为难
ALTER TABLE student ADD COLUMN gender CHAR(1) DEFAULT '男';-- 将id为7的性别改为女
UPDATE student SET gender='女' WHERE id=7;-- 添加数据
INSERT INTO student VALUES(8,'婓南苇',99,100,100,'女');-- 删除数据
DELETE  FROM student WHERE id = 8 ;-- 修改数据
UPDATE student SET NAME='李诗雁',gender='女' WHERE id =4;
UPDATE student SET gender=NULL WHERE id=2;
UPDATE student SET gender='' WHERE id=6;SELECT * FROM student;-- 查询指定字段
SELECT NAME,gender FROM student;-- 查询是指定别名
SELECT NAME '姓名',gender '性别' FROM student;-- 查询没有真实性别数据的学生
SELECT * FROM student WHERE gender IS NOT NULL OR gende='';-- 分页查询
-- 查询第1,2条数据
SELECT * FROM student LIMIT 0,2;
-- 查询第5,6,7条数据
SELECT * FROM student LIMIT 4,3;-- 目前共8条数据,每页显示3条数据,共3页
-- 第一页:
SELECT * FROM student LIMIT 0,3;
-- 第二页:
SELECT * FROM student LIMIT 3,3;
-- 第三页:
SELECT * FROM student LIMIT 6,3;-- 查询每页数据的sql
SELECT * FROM student LIMIT (当前页-1)*每页行数,每页行数;-- 查询后排序(order by)
-- 一个排序,按id排序
SELECT * FROM student ORDER BY id DESC;-- 多个排序:按chinese降序,再按照math降序
SELECT * FROM student ORDER BY chinese DESC,math DESC;-- 聚合(统计)查询
-- 查询学生chinese的最高分
SELECT MAX(chinese) FROM student;-- 查询学生english的最低分
SELECT MIN(english) FROM student;-- 查询所有学生的math总分
SELECT SUM(math) FROM student;-- 查找chinese的平均分
SELECT AVG(chinese) FROM student;-- 查询现在有多少名
SELECT COUNT(*) FROM student;
-- count(字段)如果存在null,则不统计该数量
SELECT COUNT(gender) FROM student;-- 分组查询(groud by)
-- 查询男女各有几人
SELECT gender, COUNT(math) FROM student WHERE gender IS NOT NULL AND gender<>'' GROUP BY gender;-- 分组后筛选(条件)
-- 查询人数大于2人的性别
-- 1,先把性别进行分组;2、再对每组人数进行统计;3、统计人数大于2
SELECT gender,COUNT(gender) FROM student WHERE gender IS NOT NULL AND gender<>'' GROUP BY gender HAVING COUNT(gender)>2;-- 子查询:把一个sql查询的结果作为另一个查询的条件
-- 查询chinese最高分的学生
SELECT * FROM student WHERE chinese=(SELECT MAX(chinese) FROM student);-- 约束分类-- 默认值
CREATE TABLE staff(id INT,NAME VARCHAR(20),gender CHAR(1) DEFAULT'男'
);INSERT INTO staff(id,NAME) VALUES(1,'左莫');
INSERT INTO staff(id,NAME) VALUES(2,'韦剑胜');
INSERT INTO staff(id,NAME) VALUES(3,'我离');-- 删除表
DROP TABLE staff;-- 非空
-- name不能出现null;
CREATE TABLE staff(id INT,NAME VARCHAR(20) NOT NULL,gender CHAR(1)
);INSERT INTO staff(id,NAME,gender) VALUES(1,'左莫','男');
INSERT INTO staff(id,NAME,gender) VALUES(2,'韦剑胜','男');
INSERT INTO staff(id,gender) VALUES(3,'男'); -- 将会自动赋值空字符串-- 唯一
-- id值唯一
CREATE TABLE staff(id INT UNIQUE,NAME VARCHAR(20),gender CHAR(1)
);-- 插入数据
INSERT INTO staff(id,NAME,gender) VALUES(1,'左莫','男');
INSERT INTO staff(id,NAME,gender) VALUES(1,'韦剑胜','男')  -- 错误;Duplicate entry '1' for key 'id'
INSERT INTO staff(id,gender) VALUES(3,'男'); -- 将会自动赋值空字符串SELECT * FROM staff;-- 主键CREATE TABLE staff(id INT PRIMARY KEY,NAME VARCHAR(20),gender CHAR(1)
);INSERT INTO staff(id,NAME,gender) VALUES(1,'左莫','男');
INSERT INTO staff(id,NAME,gender) VALUES(1,'韦剑胜','男')    -- 错误;Duplicate entry '1' for key 'PRIMARY'
INSERT INTO staff(id,gender) VALUES(3,'男'); -- 将会自动赋值空字符串DROP TABLE staff;-- 自增长
CREATE TABLE staff(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),gender CHAR(1) DEFAULT '男'
);INSERT INTO staff(NAME) VALUES('左莫');
INSERT INTO staff(NAME) VALUES('韦剑胜');
INSERT INTO staff(NAME) VALUES('我离');SELECT * FROM staff;-- delete from: 这种删除不会影响自增长约束
-- truncate table:这种删除会影响自增长约束(必须是全表删除)(用的少)
TRUNCATE TABLE staff;-- 外键-- 先建立主表:部门表
CREATE TABLE dept(id INT PRIMARY KEY AUTO_INCREMENT,departName VARCHAR(20)
);-- 再建立副表或从表:员工表
CREATE TABLE employee(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20) NOT NULL,deptId INT,CONSTRAINT employee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)--            外键名称                   外键字段       参考表(主键)
);-- 级联操作
-- 即对主表进行操作的结果同时副表也会有相同的效果CREATE TABLE employee(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20) NOT NULL,deptId INT,CONSTRAINT  employee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE -- 给外键天机级联修改和级联删除
);-- 数据库设计-- 第一范式
-- 每个表的每个字段都必须是(从业务角度)不可分割的独立单元!
student : id NAME       -- 违反第一范式                   1  张三|小三2  李四|铁四student id NAME oldname    -- 符合第一范式 1  张三  小三2  李四  铁四-- 第二范式
student: id NAME id NAME(老师的名字) -- 违反第二范式1  张三2  李四1    老乐2    老王student: id NAME      -- 符合第二范式1  张三2  李四
teacher: id NAME1  老乐2  老王-- 第三范式
-- 在第二范式的基础上,一张表的主键除外的去爱她字段都应该跟主键字段是直接决定关系
employee: id NAME gender deptName(出现冗余)   -- 违反第三范式
admin: id NAMEemployee: id NAME deptId(fk)      -- 符合第三范式
dept: id deptName
admin: id NAME-- 数据库范式跟数据库查询效率成反比!
-- 数据库范式越高,查询效果越低!      

MySQL数据库的常用操作相关推荐

  1. linux 指定库名 登录mysql_linux下对应mysql数据库的常用操作

    ssh管理工具连接mysql数据库. 一.连接mysql数据库: 通过shh管理工具,登录linux的用户名,密码,进入ssh的命令行界面后,执行如下命令: mysql -u 数据库用户名 -p 然后 ...

  2. 连接并配置好无极网络VPS主机 | 配置Mysql数据库 | Centos 常用操作| vim操作 | 保持centos的任务 | 阿里云mysql | Node.js | 腾讯云mysql

    在无极网络获得主机并用Xshell6连接上 配置主机的DNS和网络连接 # http://www.5jwl.com/style/info/shownews.asp?id=1383 Xshell 6 ( ...

  3. Python 3.x对MySQL数据库的常用操作

    封面图片:<Python程序设计(第2版)>(ISBN:9787302436515),董付国,清华大学出版社 图书详情: ================ 首先安装MySQL,然后使用pi ...

  4. mysql数据库一些常用操作

    mysql命令行语句一定要加:结束,不然就算你enter以后还是需要输入命令的. ALTER TABLE 原表名 RENAME TO 新表名   //修改表名 mysql -u root -p //登 ...

  5. mysql数据库的常用操作-索引

    索引 MySQL索引的建立对于Mysql的搞笑运行时很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQ ...

  6. like mysql 相反_Mysql数据库的常用操作

    你这么优秀,一定只想把"柠檬班"置顶 ▲ 本文由柠檬班Python10期VIP学员Boy原创. 本文主要介绍mysql数据库的查询操作,捎带脚增删改操作. ·增 · insert  ...

  7. Linux下Mysql数据库的基础操作

    Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...

  8. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  9. mysql和foxbase_Mysql使用基础知识和MYSQL数据库的简单操作 -(转)

    Mysql使用基础知识 有很多朋友虽然安装好了mysql但却不知如何使用它.在这篇文章中我们就从连接MYSQL.修改密码.增加用户等方面来学习一些MYSQL的常用命令. 一.连接MYSQL.格式:my ...

最新文章

  1. IDC_ Pro_Env _CentOS 5.4_Open×××
  2. 百度搜出十年前的照片?法院判赔1元~
  3. Google Calendar API练习
  4. 小汤学编程之JavaEE学习day08——Maven
  5. 深浅拷贝的应用-copy、mutableCopy
  6. 利用server酱推送消息和定时库:APScheduler
  7. SharePlex数据库复制解决方案
  8. 数字通信原理与TCP/IP
  9. c语言编程运行符号是什么,c语言编程用的符号有哪些
  10. 从autotool迁移到cmake
  11. mac系统开机启动项
  12. Mac实现ts文件转为mp4文件
  13. 移动硬盘不在计算机显示,移动硬盘在电脑上不显示怎么办
  14. 使用iTunes制作iPhone6s plus铃声
  15. python 实现汇率兑换程序
  16. C#图片截取压缩(百分比压缩/大小压缩)实现代码
  17. Mac上显示实时网速小工具
  18. Pytorch系列笔记(九)
  19. Android 安卓动画 属性动画 - 旋转动画
  20. Ctrl+26个英文字母组合的Excel快捷键,都是最常用的快捷键!

热门文章

  1. 以太坊知识教程------智能合约(1)基本概念
  2. 7-1 作业调度算法--先来先服务
  3. http请求中get和post的区别以及其他请求方式
  4. Java中的static———静态变量
  5. sort与sorted的区别
  6. crypto-RSA-常用解密代码块
  7. zookeeper for mac安装
  8. 【内网渗透工具】炫彩蛇安装教程
  9. python windows安装readline
  10. Python PIL库总结