Mysql 基础语法3

一,其他数据操作(高级操作)

  1. 蠕虫复制(insert into 表名(字段列表) select *|字段列表 from 表名)
  2. 主键重复:insert into 表名(字段列表)values(值列表)on duplicate key update 字段1=值1,字段2=值2……    replace into 表名(字段列表) values(值列表)
  3. 删除和修改的时候都可以加上order by和limit子句
  4. select选项(all,distinct,缺省值是all)
  5. 别名:字段|表达式|表名|子查询

二,五子句

  1. where:

1. where的语法和流程

2.  Mysql运算符(关系运算符,逻辑运算符、between and、in和not in)

3. where子句的其他形式:空值查询(is[not] null),模糊查询(like、通配符_和%)

4.where子句的本质是将数据从磁盘筛选到内存中,而having子句是将内存中的数据再次进行筛选

5.where子句后面不能使用统计函数,但是having子句可以,因为只有在内存中的数据才能直接参与运      算

b.group by子句:分组统计查询语句,往往就是配合着统计函数(聚合函数)一起使用

1.  多字段分组

2.  统计函数:max、min、sum、avg、count

3.  统计函数可以单独使用,此时相当于把整个表分成一组

4.回溯统计(向上统计),with rollup

c.having子句

d.order by子句:根据某个字段进行排序,也可以多字段排序(升序asc,也是默认值,降序desc)

e.limit子句:limitoffset,length,其中偏移量是从0开始,如果省略就默认为0!分页的原理是: limit  ($pageNum - 1) * $rowsPerPage,$rowsPerPage

三,联合查询

  1. 关键字:union,union选项是all和distinct,缺省值是distinct
  2. 应用场景:

    1,当业务逻辑出现冲突或者很难在同一个select语句中实现的时候,需要对业务逻辑进行拆分,用多个select语句单独实现然后再联合到一起;

    2,当一个表的数据量比较大的时候(尤其是超过1000w),往往需要对表进行“水平分割”(此时多张表的结构是一样是,只是存放的数据不一样),此时如果要查询数据,往往是多个表分别查询然后再联合到一起

时间: 2025-01-01 08:30:49

Mysql 基础语法3的相关文章

mysql 基础语法

以下为自己学习mysql 的一些笔记,以方便查询 目录 一. ALTER的 语法 二. 表的完整性约束 三. 索引的操作(mysql 数据库支持至少 16 个索引) 四. 视图的操作 五. 触发器的操作 六. 单表查询数据记录 七. 多表数据记录查询 八. 使用mysql 常用函数 九. mysql 的存储过程和 函数的操作 十. mysql 游标的 使用 十一. mysql 的日志管理 十二. mysql 的维护和 性能提高 十三. mysql 的安全机制 一. ALTER的 语法 1.修改表

mysql基础语法及拓展到web中的sql注入

本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建,  昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, 所以复习一下mysql的基本语法,因为以前对web的安全比较熟悉, 看过好多黑客防线以及黑客X档案, 黑锅几家网吧,你懂的, o(^▽^)o, 所以拓展一下web安全, 常见web注入的方式, 以及找的两篇资料: 首先复习一下基本的增删改查: //从Users表中删除User为admin的字段; d

Mysql 基础语法4

一,交叉连接:做表与表的笛卡尔积,关键字是crossjoin,是整个交叉连接中使用的最少但是也是概念最重要的 二,内连接 关键字:inner join,这里的inner可以省略 内连接的本质就是在交叉连接的基础之上对记录加上相应的匹配条件进行筛选 三,外连接 左外连接:左表是主表,left outer join 或left join 右外连接:右表是主表,right outer join或right join 四,自然连接 这里的自然就是自动,是指匹配的连接条件是由系统来决定 自然连接又分成自然

Mysql 基础语法2

一,字符串类型 char和varchar 1. 都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度 2.  char中指定的长度就是实际占用的长度,而varchar指定的长度只是一个范围,所以varchar还要拿1-2个字节存储该字符串到底有多少个字节,并且varchar中能够实际存储的字符跟编码有关(utf8编码20000多,gbk编码30000多) 3.  varchar对存储空间的占用更灵活,但是char的效率更高 4.如果字符串的长度是固定已知的,就用

MySQL基础语法命令

1. 建表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 通用语法: CREATE TABLE table_name (column_name column_type); 实例: CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) N

MySQL 基础语法结构

增.删.改.查 库 DATABASE 1,创建数据库[增] create database dbname charset utf8; #创建 数据库 库名 设置编码 UTF8 2,查询库[查] show create database dbname; #查询数据库的 创建信息 show databases; #列出所有存在的数据库名 3,改数据库[改] alter database db1 charset gbk; #更改 数据库 名 编码格式 GBK #更改数据库名为db1的数据库编码为gbk

MySQL基础语法——表的操作

1.创建表 基本语法 create table tableName( field1 datatype, field2 datatype, field3 datatype ); field: 队列名 datatype:列类型 创建一个学生表例子: create table student( id int, name varchar(30) gender char(6) ); 2.修改表 2.1增加表的列 基本语法 alter table tableName add (column datatype

MySQL基础语法——数据库操作

登陆用户名为root数据库: mysql -u root -p 查看数据库: show databases; 创建数据库: create database if not exists databaseName; 选择使用的数据库: use databaseName; 查看数据库中的表: show tables; 备份数据库(必须在系统环境下使用): mysqldump -u 用户名 -p 数据库名 > f:\备份.sql 恢复数据库: source f:\备份.sql 删除数据库: drop d

MySQL基础语法

增加一列到某列名后alter table table_name add column_name int after column_name; 改变列名称alter table table_name change old_column_name new_column_name int; 修改类型alter table table_name modify column_name float; 删除列alter table table_name drop column_name; 修改表名alter