当前位置: 首页 > news >正文

南昌市公司网站建设苏州专业高端网站建设

南昌市公司网站建设,苏州专业高端网站建设,福建网站建设哪家专业,百度快速排名优化技术MySQL语言汇总[DQL,DDL,DCL,DML] SQL分类1.DDL:操作数据库#xff0c;表创建 删除 查询 修改对数据库的操作对表的操作复制表#xff08;重点#xff09;#xff01;#xff01;#xff01;#xff01;#xff01; 2.DML:增删改表中数据3.DQL#xff1a;查询表中的记录… MySQL语言汇总[DQL,DDL,DCL,DML] SQL分类1.DDL:操作数据库表创建 删除 查询 修改对数据库的操作对表的操作复制表重点 2.DML:增删改表中数据3.DQL查询表中的记录语法顺序基础查询where 子句后面跟的条件if 和 case when语句字符串函数拼接聚合函数分组查询分页查询 limit 4.DCL 管理用户授权1.管理用户添加删除修改查询用户 2.权限管理查询权限授予权限撤销权限 5.多表查询子查询约束主键约束外键约束 6.用Python连接数据库进行调用和操作安装第三方模块pymysql操作MySQL练习 SQL分类 1.DDL:操作数据库表 创建 删除 查询 修改 对数据库的操作 # 创建数据库 create database 数据库名称; # 查询数据库和表名 show databases; show tables; # 查看数据库的建库语句 表的建表语句 show create database 数据库名称; show create table 表名称; # 删除数据库 drop database 数据库名称; # 使用数据库 use 数据库名称; # 查看当前正在使用的数据库名称 select database(); # 修改数据库的字符集 alter database db4 character set utf8;对表的操作 完整的建表语句 # 创建一个表 create table 表名(列名1 数据类型1列名2 数据类型2......列名3 数据类型n ); # 查询表 show tables; # 查看表结构 show create table 表名; # 修改表名 rename table 表名 to 新表名; alter table 表名 rename to 新表名; # 修改表的字符集 alter table 表名 character set 字符集名称; # 查看某张表的字符集 show create table 表名; # 添加一列 alter table 表名 add 列名 数据类型; # 修改列名称 类型 alter table 表名 change 列名 新列名 新数据类型; alter table 表名 modify 列名 新数据类型; # 删除列alter table 表名 drop 列名; # 删除表 drop table 表名;复制表重点 -- 复制表的结构 create table if not exists 表名 like 被复制的表名; -- 新建一个查询表的内容 create table if not exists 表名 as select语句;这个方法 就是把一个你想要的临时表变成一个表 保存起来非常好用 2.DML:增删改表中数据 # 向表中添加数据 insert into 表名 (列名1列名2列名3......,列名n) values(值1,值2,......值n); # insert select 将select查询出来的数据插入到目标表中 insert into 表名 select语句;# 删除数据 delete from 表名 [where条件]; 如果没有where条件则是删除这个表中的所有记录 如果行删除所有记录推荐使用 truncate table 表名; 截断表 删除这个表在重新创建# 修改数据 update 表名 set 列名1 值1,列名2 值2,......[where条件]; 如果不加where条件则是全部修改 3.DQL查询表中的记录 语法顺序 select字段列表 from表名列表 where条件列表 group by分组字段 having分组之后的条件 order by排序 limit分页限定基础查询 # 多个字段的查询 select 字段名1字段名2... from 表名; 去除重复distinct 去除重复的数据 全部去重# select 列的时候可以添加一些四则运算法则 select age 4 as new_age from student;# 排序查询 order by 排序字段1 排序方式1排序字段2 排序方式2...; DESC降序 where 子句后面跟的条件 、、、、、 可以用符号表示 大于小于 BETWEEN...AND 在这两个条件之间 是左闭右闭的区间 IN(集合) -- 集合可以写成子查询 但是结果应该只有一列 LIKE模糊查询_:单个任意字符%多个任意字符 IS NULL IS NOT NULL count(字段名) 时注意null的列 注意 null 和 空字符串 的区别 null是什么都没有 这是空的字符串 是有东西的 and or not # 举例 SELECT * FROM student WHERE age 20; SELECT * FROM student WHERE age 20; SELECT * FROM student WHERE age 20; SELECT * FROM student WHERE age ! 20; SELECT * FROM student WHERE age 20; SELECT * FROM student WHERE age 20 age 30; SELECT * FROM student WHERE age 20 AND age 30; SELECT * FROM student WHERE age BETWEEN 20 AND 30; SELECT * FROM student WHERE age22 OR age20 OR age25; SELECT * FROM student WHERE age IN(22,18,55); SELECT * FROM student WHERE english IS NOT NULL; SELECT * FROM student WHERE NAME LIKE 马%; # 匹配姓马的 SELECT * FROM student WHERE NAME LIKE _化%; #匹配名字第二个是化的 SELECT * FROM student WHERE NAME LIKE ___; ## 匹配名字是三个的学生 SELECT * FROM student WHERE NAME LIKE %景% show variables like %char%if 和 case when语句 -- if(condition,true_act,false_act) 函数 case when 的写法# 条件 true false select *,IF(age 22,old,young) as age_type from students; # if 语句嵌套 select *,IF(age 22,# 年龄22 并且23 false 是年龄22 但是23if(age23,big old,little old),young) as age_type from students;# case when 语句 用end 结尾 select *,case when age22 then youngwhen age23 then little oldwhen age24 then big oldelse little young end as typefrom students;字符串函数拼接 -- 字符串函数 -- 字符串拼接 -- concat(*strs) 如果字符串中有null 结果就是null select CONCAT(name,,,gender,,,a) from students; # 将这些字符串合并起来成为一个 select CONCAT(name,gender,a,null) from students; -- CONCAT_WS(separator,str1,str2,...) 中间有分隔符 他会过滤null select CONCAT_WS(,,name,gender,a,null,b) from students;-- 字符串切分 -- SUBSTR(str FROM pos FOR len) , SUBSTR(str,pos),SUBSTR(str,pos,len) select *,SUBSTR(name,2) from students; # 切分前两个 select *,SUBSTR(name,1,2) from students; # 从第一个开始 切两个 select *,SUBSTR(name from 1 for 2) from students; select *,SUBSTRING(name,1,2) from students;-- STRCMP 字符串对比 select *,STRCMP(SUBSTR(name,1,1),施) from students; # 切分第一个姓氏过后 与‘施’对比 选择施姓的 -- 数字类型的函数 select *,ABS(age),COS(age),LENGTH(clazz) from students;聚合函数 将一列数据作为一个整体进行纵向的计算 注意聚合函数的计算排除null值可使用ifnull函数# max:计算最大值 SELECT MAX(math) FROM student;# min:计算最小值 SELECT MIN(math) FROM student;# sum:计算和 SELECT SUM(english) FROM student;# avg:计算平均值 SELECT AVG(math) FROM student;分组查询 语法group by 分组字段 1.分组之后查询的字段分组字段、聚合函数 2.where和having的区别 ​ where在分组之前进行限定如果不满足条件则不参与分组。 ​ having在分组之后进行限定如果不满足结果则不会被查询出来 ​ where后不可以跟聚合函数having可以进行聚合函数的判断# 按照性别分组分别查询男、女同学的平均分 SELECT sex,AVG(math) FROM student GROUP BY sex;# 按照性别分组分别查询男、女同学的平均分人数 SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;# 按照性别分组分别查询男、女同学的平均分人数 要求分数不低于70分的人不参与分组。 SELECT sex,AVG(math),COUNT(id) FROM student WHERE math70 GROUP BY sex;# 按照性别分组分别查询男、女同学的平均分人数 要求分数不低于70分的人不参与分组分组之后人数大于2人。 SELECT sex,AVG(math),COUNT(id) FROM student WHERE math70 GROUP BY sex HAVING COUNT(id)2; 分页查询 limit 开始的索引 当前的页码 -1 * 每页显示的条数 SELECT * FROM student LIMIT 0,3; 第一页 SELECT * FROM student LIMIT 3,3; 第二页 SELECT * FROM student LIMIT 6,3; 第三页4.DCL 管理用户授权 1.管理用户 添加删除修改查询用户 关闭密码复杂验证 set global validate_password_policy0; set global validate_password_length1;# 用root用户添加一个新用户 CREATE USER 用户名主机名 IDENTIFIED BY 密码; 例子 CREATE USER zhangsanlocalhost IDENTIFIED BY 123; CREATE USER lisi% IDENTIFIED BY 123;# 删除用户 DROP USER 用户名主机名; 例子 DROP USER zhangsanlocalhost;# 修改用户密码 SET PASSWORD FOR 用户名主机名 PASSWORD(新密码); 例子 set password for lisi% password(234567);# 查询用户 USE mysql; select * from user; 通配符 % 表示可以在任意主机使用用户登录数据库 2.权限管理 查询权限 SHOW GRANTS FOR 用户名主机名;SHOW GRANTS FOR lisi%;授予权限 grant 权限列表 on 数据库名.表名 to 用户名主机名 [with grant option];例子 -- 将数据库db3下account表的SELECT ,DELETE, UPDATE权限授予用户lisi% GRANT SELECT ,DELETE, UPDATE ON db3.account TO lisi%;-- 给zhangsan用户所有权限 GRANT ALL ON *.* TO zhangsanlocalhost撤销权限 revoke 权限列表 on 数据库名.表名 from 用户名主机名;例子 -- 将用户lisi%对于表db3.account的更新权限撤销 REVOKE UPDATE ON db3.account FROM lisi%;-- 给lisi用户撤销所有权限 REVOKE ALL ON *.* FROM lisi%;5.多表查询 内连接 左连接 外连接 子查询 查询中嵌套查询称嵌套查询为子查询 -- 查询工资最高的员工信息 -- 1.查询最高的工资是多少 9000 SELECT MAX(salary) FROM emp; -- 2.查询员工信息并且工资等于9000的 SELECT * FROM emp WHERE emp.salary9000; -- 一条sql就完成这个操作 SELECT * FROM emp WHERE emp.salary (SELECT MAX(salary) FROM emp);--子查询可以作为条件使用运算符去判断。 运算符 --查询员工工资小于平均工资的人 SELECT * FROM emp WHERE emp.salary (SELECT AVG(salary) FROM emp);--子查询可以作为集合使用in、not int --查询财务部和市场部所有员工信息 SELECT id FROM dept WHERE NAME财务部 OR NAME市场部; SELECT * FROM emp WHERE dept_id3 OR dept_id2; --使用子查询 SELECT * FROM emp WHERE dept_id in (SELECT id FROM dept WHERE NAME财务部 OR NAME市场部);--子查询可以作为一张虚拟表参与查询 --查询员工入职日期是2011-11-11日之后的员工信息和部门信息 -- 子查询 select * from dept t1 (select * from emp where emp.join_date 2011-11-11) t2 where t1.id t2.dept_id; --普通内连接查询 select * from emp t1,dept t2 where t1.dept_id t2.id and t1.join_date 2011-11-11 union 表的拼接 但是拼接时表的结构需要完全相同 * union 对数据进行去重 * union all约束 主键约束 需要记住的为主键约束 条件 唯一 且非空 primary key 含义非空且唯一 主键就是表中记录的唯一标识 CREATE TABLE stu (id INT PRIMARY KEY, -- 给id添加主键约束NAME VARCHAR(20) );ALTER TABLE stu DROP PRIMARY KEY; -- 去除主键 alter table stu modify id int; -- 移除not null的限约束ALTER TABLE stu MODIFY id INT PRIMARY KEY; 外键约束 还有一个外键约束 foreign key让表与表产生关系从而保证数据的正确性。 create table 表名(外键列constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) );添加级联操作 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名称) REFERENCES 主表名称主表列名称 ON UPDATE CASCADE ON DELETE CASCADE;当修改一个表的值之后 另一个表的值也会修改 保证了数据的正确性6.用Python连接数据库进行调用和操作 安装第三方模块pymysql pip install pymysql 操作MySQL import pymysql# 创建连接 # 需要传入一些参数 # host mysql所在的主机名或者是域名或者是ip地址 # port mysql运行的端口号 # ps -aux | grep mysql 找到MySQL运行的进程号 # netstat -tnlp | grep mysql的进程号 找到MySQL的端口 # user 用户名 # passwd 密码 # db 指定要操作的数据库 conn pymysql.connect(hostmaster, port3306, userroot, passwd123456,dbstu_test)# 创建游标cursor cur conn.cursor() # cur.execute(use stu_test) # 切换数据库 # 准备SQL语句 sql_str1 SELECT t1.sid,t1.sname,t2.score from (SELECT sid,snamefrom Studentwhere sid in (select t1.sidfrom (SELECT sid,scorefrom SCwhere cid 01) t1 left join (SELECT sid,scorefrom SCwhere cid 02) t2 on t1.sid t2.sidwhere t1.score ifnull(t2.score,0)) ) t1 left join SC t2 on t1.sid t2.sid # 执行SQL语句 cur.execute(sql_str1)# 如果有返回值 可以通过cursor进行获取 print(cur.fetchone()) # 获取一条数据 print(# * 50) print(cur.fetchall()) # 获取所有数据 print(# * 50) print(cur.fetchmany(10)) # 获取指定大小的数据数据# 如果没有返回值看后续自己处理# 练习 import pymysql # 创建一个链接对象 conn pymysql.connect(hostmaster, userroot, password123456, port3306) # 创建游标 cur conn.cursor() cur.execute(use stu) sql select * from students cur.execute(sql) # 获取数据 print(cur.fetchone()) # fecthall 获取全部数据 元组内嵌套元组 for tu in cur.fetchall():id tu[0]name tu[1]age tu[2]gender tu[3]clazz tu[4]# print(id,name,age,gender,clazz) conn.close()# 向数据库中插入数据 import pymysql # 获取students.txt的文件数据 # id 1500100001 # name 施笑 # age 23 # gender 女 # clazz 文科六班 with open(../data/student.txt, r, encodingutf-8) as fp:line_list fp.readlines()# print(line_list) new_list [] for info in line_list:splits info.split(,)new_list.append((splits[0], splits[1], splits[2], splits[3], splits[4])) print(new_list)# 创建一个链接对象 # conn pymysql.connect(hostmaster, userroot, password123456, port3306, dbstu) # 创建游标 # cur conn.cursor()# 使用with的方式打开mysql链接 with pymysql.connect(hostmaster, userroot, password123456, port3306, dbstu) as conn:with conn.cursor() as cur:# insert sql# 注意引号的问题# insert_sql finsert into student() values({id},{name},{age},{gender},{clazz})insert_many insert into student() values(%s,%s,%s,%s,%s)# insert_sql insert into student() values(%d,%s,%d,%s,%s) % (id, name, age, gender, clazz)# select_sql select * from students where age f{age} or 11# print(insert_sql)# cur.execute(insert_sql)# executemany 不需要在字符串加 单引号try:cur.executemany(insert_many, new_list)except Exception as e:# 回滚事件conn.rollback()else:# print(cur.fetchall())# 提交事务conn.commit()
http://www.w-s-a.com/news/473853/

相关文章:

  • 有哪些做排球比赛视频网站wordpress 教师工作坊
  • 深圳好点的网站建设公司互联网企业信息服务平台
  • 下载空间大的网站建设哈尔滨网站制作软件
  • 南城网站仿做无锡网站制作哪家价格便宜
  • c做的网站营销策划课程
  • 免费网站404免费进入重庆的公需科目在哪个网站做
  • 网站空间租用费用网站建设公司怎么宣传
  • 镇江网站建设优化案例分析dw2018网页制作步骤图文
  • 网站开发一个多少钱为什么前端都不用dw
  • 网站降权的原因北京中小企业网站建设公司
  • 个人域名能做网站吗wordpress
  • 手机网站设计只找亿企邦工业设计公司简介
  • 腾讯云主机做网站免费网站怎么做啊
  • 网站建设推广销售话术广州网页定制多少钱
  • 备案号是哪个网站项目管理pmp
  • 做网站需要哪些硬件软件网站视频链接怎么做的
  • 电子商务网站建设试题二wordpress主页显示浏览数
  • 网站快照没了广州企业电话大全
  • 网站项目开发收费标准网站开发app开发主营业务
  • 怎么到国外网站去接模具订单做互联网建设企业网站
  • 深圳品牌网站建设公司排名洪雅网站建设
  • nodejs 做网站wordpress主题绕过激活码
  • 平湖模板网站建设公司网页美工培训
  • 顺德网站建设市场建设工程交易中心网站
  • 深圳企业网站怎么做浪琴手表网站建设图
  • 2018网站外链怎么做济南 网站设计公司
  • 承德百度网站建设郑州网站seo优化公司
  • 四川建站模板网站公司分类信息网站制作
  • 网站开发前后端有wordpress模板安装教程视频教程
  • 有网站想修改里面的内容怎么做怎么做黑彩黑彩网站