Mysql基础(三)
#DML语言
/*
数据操作语言
插入:insert
insert into 表名(列名,...) values(值1,...);
insert into 表名 set 列名=值, 列名=值,... 修改:update
删除:delete
*/ CREATE TABLE beauty(
id INT(11) PRIMARY KEY,
`name` VARCHAR(50),
sex CHAR(1),
borndate DATETIME,
phone VARCHAR(11),
photo BLOB,
boyfriend_id INT(11)
);
##插入方式一:
SELECT * FROM beauty;
-- 1.插入值的类型要与列的类型一直或兼容 -- 2.不可以为null的列必须插入值,可以为null的类如何插入值
-- 方式1
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(13,'何苗','女','1995-2-4','',NULL,2);
-- 方式2
INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)
VALUE(15,'雨洁','女','1996-6-4','',2); -- 3.列数和值的个数一致且对应
-- 可以省略。默认所有列,而且列的顺序和表中列的顺序一致
INSERT INTO beauty
VALUES(16,'芳芳','女',NULL,'',NULL,NULL); ##插入方式二:
--
INSERT INTO beauty SET id = 19, NAME = '琳琳',phone = ''; SELECT *FROM beauty; -- 两种方式pk
-- 方式一支持批量插入多行,方式二不支持
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(22,'何苗','女','1995-2-4','',NULL,2),
(20,'何苗','女','1995-2-4','',NULL,2),
(21,'何苗','女','1995-2-4','',NULL,2); -- 方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,phone)
SELECT 26,'colin','';
##修改语句
/*
1.修改单表的记录
语法:
update 表名 set列=新值, 列=新值, ... where 筛选条件 2.修改多表的记录
语法:
sql192语法:
update 表1 别名, 表2 别名 set 列=值, ... where 连接条件 and 筛选条件; sql199语法:
update 表1,别名 inner|left|right join 表2 别名 on 连接条件 set 列=值, ...
where 筛选条件; */ -- 修改beayty表中姓 琳 的电话号码为888
UPDATE beauty SET phone = ''
WHERE `name` LIKE '琳琳'; ##删除语句
/*
方式一:delete
1.单表的删除
delete from 表名 where 筛选条件 2.多表的删除
sql192
delete 表1的别名,表2的别名
from表1 别名, 表2 别名
where 连接条件
and 筛选条件;
sql199
delete 表1的别名 ,表2的表名
from 表1,别名
inner|left|right join 表2 别名 on 连接条件 、
where 筛选条件; 方式二: truncate
语法:truncate table 表名; truncate和delete区别:①假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长的值从1开始。
②truncate删除没有返回值,delete删除有返回值
③truncate删除不能回滚,delete删除可以回滚
*/ -- 删除手机号4结尾的信息
DELETE FROM beauty
WHERE phone LIKE '%4'; ##truncate 清空数据
TRUNCATE TABLE beauty;
#DDL
/*
数据定义语言
库和表的管理
1.库的管理:
创建,修改,删除 2.表的修改
创建,修改,删除
创建: create
修改: alter
删除: drop
*/ ##库的管理
-- 1.创建库
CREATE DATABASE IF NOT EXISTS 库民; -- 2.库名的修改,直接找文件修改,一般库不做修改, -- 更改库的字符集
ALTER DATABASE 库名 CHARACTER SET gbk; -- 库的删除
DROP DATABASE IF EXISTS 库名; ##表的管理
-- 表的创建
/*
create table 表名(
列名 列的类型(长度)约束,
列名 列的类型(长度)约束,
...
列名 列的类型(长度)约束
);
*/
-- 1.创建表Book
CREATE TABLE Book(
Id INT,
bName VARCHAR(20),
price DOUBLE,
authorId VARCHAR(20),
publishDate DATETIME,
nation VARCHAR(20)
); DESC Book;
SELECT * FROM Book; -- 2.表的修改:
/*
①改列名 CHANGE COLUMN
②修改列的类型或约束 MODIFY COLUMN publ TIMESTAMP;
③添加新列 ADD COLUMN
alter table 表名 add column列名 类型 first|after 字段字段名;
④删除列 DROP COLUMN
⑤修改表名 RENAME TO
*/
ALTER TABLE book CHANGE COLUMN pubDate publ DATETIME;
ALTER TABLE Book MODIFY COLUMN publ TIMESTAMP;
ALTER TABLE Book ADD COLUMN page INT ;
ALTER TABLE Book ADD COLUMN AA INT AFTER price;
ALTER TABLE Book DROP COLUMN page;
ALTER TABLE Book RENAME TO book_ac;
DESC book_ac; ##表的删除
DROP TABLE IF EXISTS book_ac; #表的复制
-- 1.仅仅复制表的结构
CREATE TABLE copy LIKE book_ac;
-- 2.复制表的结构+数据
CREATE TABLE copy2 SELECT * FROM book_ac;
-- 3.只复制部分数据
CREATE TABLE copy3
SELECT id,price
FROM book_ac
WHERE nation = '中国'; -- 4.仅仅复制某些字段
CREATE TABLE copy4
SELECT id,price
FROM book_ac
WHERE 1=3;
## 常见的数据类型 /*
数值型:
整型: tinyint smallint mediumint int/integer bigint
1字节 2字节 3字节 4字节 8字节
特点:① 如果不设置无符号还是有符号,默认的是有符号,
如果想设置无符号,需要添加unsigned关键字
② 如果插入的数值超过整型的范围,回报out of rang异常,
并且插入临界值.
③ 如果不设置长度,会有默认的长度,长度代表显示的最大宽度
如果不够会用0在左边填充,但必须搭配zerofill使用
小数:
浮点型:
float(M,D)
double(M,D)
定点数:
dec(M,D)
decimal(M,D)
特点:① M代表整数部位 + 小数部位,D代表小数部位个数,如果超过范围,插入临界值
② M和D都可以省略,如果是decimal,则M默认为10,D默认为0
如果是float和double,则会根据插入的数值的精度来决定精度
③ 定点型的精度 较高,如果要求插入数值的精度较高,
如货币运算符则考虑使用 字符型:
较短的文本:char(M) M默认为1,可省略 固定长度的长度 空间的耗费比较耗费 效率高
varchar(M) 不可以省略 可变的长度 空间耗费高 效率低
其他
enum 用于保存枚举
set 用于保存集合 较长的文本: text
blob(较长的二进制数据) 日期型:
字节 范围 受时区的影响
date 只保存=日期
time 只保存时间
year 只保存年
datetime 保存日期+时间 8 1000-9999 不受
timestamp 保存日期+时间 4 1970-2028 受 */
-- 原则:多选择的类型越简单越好,能保存数值的类型越小越好
Mysql基础(三)的更多相关文章
- 04 mysql 基础三 (进阶)
mysql 基础三 阶段一 mysql 单表查询 1.查询所有记录 select * from department; select * from student; select * from ...
- mysql基础三(视图、触发器、函数、存储过程、事务、防注入)
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 1.创建视图 -格式:CREATE ...
- mysql基础(三)——中级查询
创建表 CREATE TABLE DEPT( DEPTNO ) PRIMARY KEY, DNAME ) , LOC ) ) ; ,'ACCOUNTING','NEW YORK'); ,'RESEAR ...
- MySQL 基础三 函数(聚合、字符串、时间、条件判断)
1.聚合 其它:GROUP_CONCAT.avg.sum.count.max.min SELECT typeid,GROUP_CONCAT(goodsname) FROM `goods` GROUP ...
- MySQL基础(三)——约束
MySQL基础(三)--约束 约束是在表上强制执行的数据校验规则,主要用于维护表中数据的完整性以及当数据之间有以来关系时,保护相关的数据不会被删除. 根据约束对列的限制,可以划分为:单列约束(只约束一 ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式
目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...
- MYSQL基础笔记(三)-表操作基础
数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...
随机推荐
- FTP服务器项目的一些整理
几个月前按照网上的教程写了一个FTP的服务器,现在回头整理一下里面的一些知识. FTP简介 FTP是文件传输协议(File Transfer Protocol),工作在TCP/IP协议族的应用层,其传 ...
- Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)
一.前言 有人问,为什么要用Jenkins,在一些中小型企业?我说下我以前开发的痛点,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已 ...
- B. Welfare State(RMQ问题的逆向考虑)
\(对于操作1,我们只关心最后一次操作.\) \(对于操作2,我们只关心值最大的一次操作.\) \(也就是说,我们记录每个居民最后一次被修改的位置\) \(然后它的最终答案就是从这个位置起,max(操 ...
- H. Subsequences (hard version) dp
H. Subsequences (hard version) 这个题目好难啊,根本就不知道怎么dp,看了题解,理解了好一会才会的. 首先dp[i][j] 表示前面 i 个字符,形成长度为 j 的不 ...
- Java创建对象的六种方法-权当记录一下
1 简介 Java是面向对象的编程语言,只要使用它,就需要创建对象.Java创建对象有六种方法,实际常用的不会这么多,这里权当是记录一下. 2 六种方法 (1)使用new关键字 Pumpkin p1 ...
- 【FPGA篇章四】FPGA状态机:三段式以及书写方法
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 状态机是fpga设计中极其重要的一种技巧,状态机通过不同的状态迁移来完成特定的逻辑操作,掌握状态机的写法可以使fpga的开发事半功倍. 状态 ...
- 【HBase】表模型和基本操作介绍
目录 HBase表模型 常用Shell操作 HBase表模型 创建一个hbase表,必须要有表名和列族名 列族 -- columnFamily,就是上图中的Column Family1 userInf ...
- 【Hadoop离线基础总结】Hue的简单介绍和安装部署
目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...
- js数据类型很简单,却也不简单
最近脑子里有冒出"多看点书"的想法,但我个人不是很喜欢翻阅纸质书籍,另一方面也是因为我能抽出来看书的时间比较琐碎,所以就干脆用app看电子书了(如果有比较完整的阅读时间,还是建议看 ...
- Java元注解@Retention规则
@Retention是java当中的一个元注解,该元注解通常都是用于对软件的测试 1.适用方式: @Retention(RetentionPolicy.RUNTIME) @interf ...