MySQL学习笔记( 整理中)
排序: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学习笔记( 整理中)相关推荐
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...
- MySQL学习笔记整理(上部)
文章目录 前言 登录命令 DDL数据定义语言 一.操作库 二.操作表 创建表 字符编码问题 查看表结构 数据类型 数值类型 日期和时间类型 字符串类型 表完整性约束 完整性约束的分类 案例演示 修改表 ...
- mysql学习笔记整理——my.ini配置文件
前言 数据库的本质还是将数据以文件的形式存储在磁盘上,不过通过数据库服务进行管理,mysql就是这样的一个工具,言归正传,前面只是对我以前一直以来的疑惑进行了复述. my.ini配置文件可以对数据库一 ...
- 00_Oracle mysql学习笔记整理
目录 1.为什么要学习数据库 2.Oracle数据库 2.1 登录 2.2 简单查询: 2.3 单条件查询: ed 命令 2.4 多条件查询: 2.5 模糊查询 2.6 排序 2.7 字符函数:单行函 ...
- MySQL学习笔记整理
一.认识数据库 数据库的好处 1.可以持久化数据到本地 2.结构化查询 数据库存储数据的特点 1.数据存放到表中,然后表再存放到库中 2.一个库中可以有多张表,每张表具有唯一的表名来标识自己 3.表中 ...
- MySQL学习笔记_上(select查询)
上次整理了一些练习发到博客上了,也说要发基础的,整理了一下午才算是把查询那块的勉强整理完,下次再整理其他的,另外还在写设计模式和数据结构的草稿,写的差不多会慢慢发的,这两项算是副线发展,主线还是按 ...
- MySQL学习笔记(三)查询
写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...
- MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL学习笔记(六)-MySQL中库和表的管理
MySQL学习笔记(六)-MySQL中库和表的管理 作者:就叫易易好了 日期:2020/11/23 1 2 DDL即数据定义语言 创建:create 修改:alter 删除:drop 库和表的管理: ...
- 7.笔记 MySQL学习——向表中添加行
7.笔记 MySQL学习--向表中添加行 往表中添加内容可以是insert语句,也可以是LOADDATA语句或者mysqlimport客户端程序. 1. 查看表中行数量 mysql> sele ...
最新文章
- php引用地址,关于php的引用
- HDOJ1114解题报告【完全背包】
- 取得前九条之后的数据
- 单线程与多线程网络程序架构简介
- ClassPathBeanDefinitionScanner 扫描给定的包及其子包
- 一款已上市MMO手游地图同步方案总结
- IOS开发中的弹框综述
- VS2013常用设置和其他
- AngularJS入门之数据绑定
- 小红书8月2日正式推行“号店一体”机制 月销万元以下商家免收佣金
- DevExpress学习笔记之如何获取Repository Item的值
- 自动驾驶初创公司Nuro获软银9.4亿美元投资
- Freescale i.mx28 Boot-stream分析
- ArcGIS Pro 简明教程(3)数据编辑
- Python3中一维数组和二维数组的输入
- chage 修改用户密码的有效期限
- 如何将Word转换成PDF的几种使用方法
- linux系统管理员用户名为admin,Linux创建系统管理员用户
- log10/log2--求常用对数/以2为底的对数
- python桌面爬虫_Python爬虫 利用python爬取ZOL桌面壁纸大图
热门文章
- Pytorch遍历DataLoader时报错BrokenPipeError: [Errno 32] Broken pipe
- GCN的形象讲解1,2
- python 包的使用 (二)——tesseract识别图片中的文字
- 用access建立一个试题库_我想建立一个试题库,用Access可吗?还 – 手机爱问
- Mybatis——动态SQL实现数据的增删改查
- php微信接口调用,PHP调用微信接口报错
- 计算机 项目管理 stage phase区别
- 零知识证明四——Fiat-Shamir,三分钟零知识证明入门
- 悲观锁、乐观锁、单版本并发控制、多版本并发控制 关系
- Linux系统中运行jar包的四种方式