排序:ORDER BY field1, [field2...] [ASC [DESC]]

分组:GROUP BY field [with rollup] {根据某个字段有哪几种类型分出来,可配合函数作统计不同分组数量,with rollup所有分组计算总数量}

连接:
INNER JOIN 内库接 交集 select 列名1,列名2... from 表1 inner join 表2 on 表1.列?=表2.列?
LEFT JOIN(左连接)左交集select 列名1,列名2... from 表1 left join 表2 on 表1.列?=表2.列?
RIGHT JOIN(右连接)右交集select 列名1,列名2... from 表1 right join 表2 on 表1.列?=表2.列?

正则表达式:select.... WHERE 列名 REGEXP 'XXX';

NULL值处理:is null or is not null

事务:
MYSQL的事务处理主要有两种方法。
1、用begin,rollback,commit来实现
begin 开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用set来改变mysql的自动提交模式
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
来实现事务的处理。
但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!
个人推荐使用第一种方法!
MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!)

也可用UNIDAC的控件实现
UniQuery.Connection通过StartTransaction, Commit, Rollback等方法来控制本地事务,判断一个事务是否开启用InTransaction。

------------------------------------------------------------------------------------------------------------------------------------
数据库操作:
create database 数据库名 character set gbk; {设置数据库的字符集}
drop database 数据库名
对表的操作

创建表:create table student( stu_id int unsigned not null,s_name char(10) not null )

// {default'-', 默认值 int unsigned 无符号int,not null 不为空,auto_increment 自动增加索引值,primary key设置为主键,可在建表时加上或另外设置}

删除表:drop table 表名;

删除表中所有数据:delete from student

给表改名字:alter table 旧表名 rename 新表名;

添加列:alter table 表名 add 列名 列数据类型 [after 插入位置]or[first];

给表的列改数据类型: ALTER TABLE 表名 MODIFY 列名 数据类型

给列数据类型修改默认值:ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;{不用加等号}

删除列数据默认值:ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

给列改名:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型

删除列:alter table 表名 drop 列名称;

显示表的结构:show create table 表名;

自增序列添加主键(先添加主键再添加自增序列):

给列添加主键 Alter table student add primary key(s_id);

给列添加序列 Alter table 表名 change 列名 列名 int(10) not null auto_increment;

设置自增序列当前值:alter table 表名 AUTO_INCREMENT=??;

查询当前自增列的值:SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name='student';

删除主键(如有自增长序列,先删自增长再删除主键)
删除自增长 Alter table 表名 change 列名 列名 数据类型
删除主键 Alter table 表名 drop primary key

添加索引 create INDEX indexName ON 表名 (列名(length));
创表时指定: create table 表名(列名 INT NOT NULL,列名 varchar(16)not null ,
INDEX [indexName](列名(length)));
修改表的结构时添加:alter 表名 add INDEX[indexName] on (username(length))
删除索引:DROP INDEX [indexName] on 表名

创建索引(也可在建表时加索引):
建表时创建例:CREATE TABLE 表名(ID INT NOT NULL,username VARCHAR(16) NOT NULL,INDEX [indexName] (username(length)) );
ALTER TABLE
ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

ALTER TABLE table_name ADD INDEX index_name (column_list)

组合索引:ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);{最左前缀usernname,city,age usernname,city usernname 包含}

ALTER TABLE table_name ADD UNIQUE (column_list)
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

ALTER TABLE table_name ADD PRIMARY KEY (column_list)
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:

删除索引:
DROP INDEX index_name ON talbe_name

ALTER TABLE table_name DROP INDEX index_name

ALTER TABLE table_name DROP PRIMARY KEY

临时表:create temporary table student_temp(....)
删除临时表DROP TABLE 表名;{与数据库断开连接也会自动销毁临时表}

复制表:(也可show crete table 表名 获取信息建新表)
1.只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 或者
CREATE TABLE 新表 LIKE 旧表

2.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表

3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表

4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

对数据的操作

增:insert course values(null,'游泳 ') 或insert course(x1,x2) values(y1,y2) {可以只插入对应的列的值}
INSERT IGNORE INTO与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在的数据,如果数据库没有数据,
就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
INSERT IGNORE INTO当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。
而REPLACE INTO into如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。

删:delete from course where id=3

改:update course set cName='羽毛球' where id=4

查:select * from 表名

转载于:https://www.cnblogs.com/chaosc/p/5834554.html

MySQL学习笔记( 整理中)相关推荐

  1. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

  2. MySQL学习笔记整理(上部)

    文章目录 前言 登录命令 DDL数据定义语言 一.操作库 二.操作表 创建表 字符编码问题 查看表结构 数据类型 数值类型 日期和时间类型 字符串类型 表完整性约束 完整性约束的分类 案例演示 修改表 ...

  3. mysql学习笔记整理——my.ini配置文件

    前言 数据库的本质还是将数据以文件的形式存储在磁盘上,不过通过数据库服务进行管理,mysql就是这样的一个工具,言归正传,前面只是对我以前一直以来的疑惑进行了复述. my.ini配置文件可以对数据库一 ...

  4. 00_Oracle mysql学习笔记整理

    目录 1.为什么要学习数据库 2.Oracle数据库 2.1 登录 2.2 简单查询: 2.3 单条件查询: ed 命令 2.4 多条件查询: 2.5 模糊查询 2.6 排序 2.7 字符函数:单行函 ...

  5. MySQL学习笔记整理

    一.认识数据库 数据库的好处 1.可以持久化数据到本地 2.结构化查询 数据库存储数据的特点 1.数据存放到表中,然后表再存放到库中 2.一个库中可以有多张表,每张表具有唯一的表名来标识自己 3.表中 ...

  6. MySQL学习笔记_上(select查询)

      上次整理了一些练习发到博客上了,也说要发基础的,整理了一下午才算是把查询那块的勉强整理完,下次再整理其他的,另外还在写设计模式和数据结构的草稿,写的差不多会慢慢发的,这两项算是副线发展,主线还是按 ...

  7. MySQL学习笔记(三)查询

    写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...

  8. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  9. MySQL学习笔记(六)-MySQL中库和表的管理

    MySQL学习笔记(六)-MySQL中库和表的管理 作者:就叫易易好了 日期:2020/11/23 1 2 DDL即数据定义语言 创建:create 修改:alter 删除:drop 库和表的管理: ...

  10. 7.笔记 MySQL学习——向表中添加行

    7.笔记 MySQL学习--向表中添加行 往表中添加内容可以是insert语句,也可以是LOADDATA语句或者mysqlimport客户端程序. 1.  查看表中行数量 mysql> sele ...

最新文章

  1. php引用地址,关于php的引用
  2. HDOJ1114解题报告【完全背包】
  3. 取得前九条之后的数据
  4. 单线程与多线程网络程序架构简介
  5. ClassPathBeanDefinitionScanner 扫描给定的包及其子包
  6. 一款已上市MMO手游地图同步方案总结
  7. IOS开发中的弹框综述
  8. VS2013常用设置和其他
  9. AngularJS入门之数据绑定
  10. 小红书8月2日正式推行“号店一体”机制 月销万元以下商家免收佣金
  11. DevExpress学习笔记之如何获取Repository Item的值
  12. 自动驾驶初创公司Nuro获软银9.4亿美元投资
  13. Freescale i.mx28 Boot-stream分析
  14. ArcGIS Pro 简明教程(3)数据编辑
  15. Python3中一维数组和二维数组的输入
  16. chage 修改用户密码的有效期限
  17. 如何将Word转换成PDF的几种使用方法
  18. linux系统管理员用户名为admin,Linux创建系统管理员用户
  19. log10/log2--求常用对数/以2为底的对数
  20. python桌面爬虫_Python爬虫 利用python爬取ZOL桌面壁纸大图

热门文章

  1. Pytorch遍历DataLoader时报错BrokenPipeError: [Errno 32] Broken pipe
  2. GCN的形象讲解1,2
  3. python 包的使用 (二)——tesseract识别图片中的文字
  4. 用access建立一个试题库_我想建立一个试题库,用Access可吗?还 – 手机爱问
  5. Mybatis——动态SQL实现数据的增删改查
  6. php微信接口调用,PHP调用微信接口报错
  7. 计算机 项目管理 stage phase区别
  8. 零知识证明四——Fiat-Shamir,三分钟零知识证明入门
  9. 悲观锁、乐观锁、单版本并发控制、多版本并发控制 关系
  10. Linux系统中运行jar包的四种方式