数据库

数据的存储:将数据放到表中,表再放到库中。

一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。

表由列组成,我们也称为字段。每个字段描述了它所含有的数据的意义表由列组成,我们也称为字段。每个字段描述了它所含有的数据的意义

表中的数据是按行存储的,一行即为一条记录。

MySQL下载安装略过

MySQL设置命令

net start MySQL服务名        【服务启动】

net stop MySQL服务名        【服务停止】

mysql -u root -p              【进入数据库】

mysql -h 主机IP地址 -P 端口号 -u 用户名 -p回车
Enter Password:密码

除了-p与密码之间不要空格外,其他的-h,-P,-u与后面的参数值之间可以有空格

exit;                                          【 退出】

mysqldump -h主机地址 -P端口号 -u用户名 -p密码 --database 数据名 > 文件路径/文件名.sql  【单个数据库备份】

source  sql脚本路径名.sql                        【导入执行备份的sql脚本】

show create table 表名;                         【查看表的引擎,字符集】

show table status\G                           【查看全部表的引擎,字符集】

show engines\G                             【列出数据库支持的引擎】

alter table 表名 engine=引擎名;                      【修改表引擎】

show create database 数据库名;                     【 查看字符集】

create database 表名 character set (gbk);                    【修改表字符集】

show character set;                             【查看字符集校队】

DCL 数据控制
flush privileges;                               【刷新权限】
create user '用户名' @'IP地址' identified by '密码';              【 创建新用户】
grant 权限1,... on 数据库名.* to 用户名 @ IP地址;                 【用户授权】
[update,instert,delete...权限名]
revoke 权限1,... on 数据库名.* from 用户名 @IP地址;                   【撤销权限】
所有的数据库 就用*.* 所有的权限 就用all
show grants for 用户名 @IP 地址                      【查看权限】
drop user 用户名 @IP地址                         【删除权限】

数据类型

int(M),必须和unsigned zerofill一起使用才有意义

浮点型系列:float,double

double(M,D):表示最长为M位,其中小数点后D位

定点型系列:decimal

decimal(M,D):表示最长为M位,其中小数点后D位

字符串类型:char,varchar(M),text

char如果没有指定宽度,默认为1个字符

varchar(M),必须指定宽度

其他类型:bit, xxBlob, 枚举,集合等

运算符

1、算术运算符

加:+
减:-
乘:*
除:/   div(只保留整数部分)
模:%   mod

2、比较运算符

大于:>
小于:<
大于等于:>=
小于等于:>=
等于:=   不能用于null判断
不等于:!= 或 <>
安全等于:<=> 可以用于null值判断

3、逻辑运算符(建议用单词,可读性来说)

逻辑与:&& 或 and
逻辑或:|| 或 or
逻辑非:! 或 not
逻辑异或:^ 或 or

4、范围

区间范围:between  x  and  y
   not between x  and y
集合范围:in (x,x,x)
   not  in(x,x,x)

5、模糊查询(只针对字符串类型,日期类型)

like 'xxx'
如果想要表示0~n个字符,用%
如果想要表示确定的1个字符,用_

6、位运算符(很少使用)

左移:<<
右移:>>
按位与:&
按位或:|
按位异或:^

7、特殊的null值处理

#(1)判断时
xx is null
xx is not null
xx <=> null

#(2)计算时
ifnull(xx,代替值) 当xx是null时,用代替值计算

字段修饰符

unsigned     (无符号)
zerofill         (使用0填充)
default         (默认值)
comment     (字段解释说明)
not null              (非空)
null         (空)
unique         (唯一索引)
index                (普通索引)
primary key      (主键)
auto_increment     (自增)
as        (别名)

语法规范和要求

(1)mysql的sql语法不区分大小写

MySQL的关键字和函数名等不区分大小写,但是对于数据值是否区分大小写,和字符集与校对规则有关。

ci(大小写不敏感),cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关,区分大小写)

(2)命名时:尽量使用26个英文字母大小写,数字0-9,下划线,不要使用其他符号

(3)建议不要使用mysql的关键字等来作为表名、字段名等,如果不小心使用,请在SQL语句中使用`(飘号)引起来

(4)数据库和表名、字段名等对象名中间不要包含空格

(5)同一个mysql软件中,数据库不能同名,同一个库中,表不能重名,同一个表中,字段不能重名

(6)标点符号:

必须成对

必须英文状态下半角输入方式

字符串和日期类型可以使用单引号'

列的别名可以使用双引号""

如果列的别名没有包含空格,可以省略双引号,如果有空格双引号不能省略。

(7)SQL脚本中如何加注释

单行注释:#注释内容

单行注释:--空格注释内容 其中--后面的空格必须有

多行注释:/* 注释内容 */

DDL 数据定义

show databases;              【查看所有数据库】
use (dataname);               【切换使用数据库】
create database (dataname);      【创建数据库】
create database 数据名 charset 'utf8'; 
drop database (dataname);        【删除数据库】

--------------------------------------------

show tables ;
show tables from 数据库名;      【查看所有表格】
create table [数据名.]表名(
字段名1 数据类型 修饰符,
字段名2 数据类型 修饰符,
);                   【创建表格】
drop table [数据库名.]表名称;      【删除表格】
describe [数据库名.]表名称;
desc [数据库名.]表名称;         【查看表结构】
alter table 旧表名 rename 新表名;
rename table 旧表名 to 新表名;     【修改表名称】

------------------------------------------------------

alter table 表名 add 字段名 字段类型 字段修饰;         【添加字段】
alter table 表名 add 字段名 字段类型 字段修饰 first;       【添加字段在首位】
alter table 表名 add 字段名 字段类型 字段修饰 after 字段名;    【添加新字段,并定位】
alter table 表名 drop 字段名;                 【删除字段】
alter table 表名change 旧字段名 新字段名 字段类型 字段修饰;   【修改字段名】
alter table 表名 modify 字段名 字段类型 字段修饰;         【修改字段类型及修饰】
alter table 表名 modify 字段名 字段类型 字段修饰 first;        【修改字段类型设首位】
alter table 表名 modify 字段名 字段类型 字段修饰 after 字段名;   【修改字段类型并定位】

DML 数据操作

insert into 表名 values(值1,2,...)                    【各列必须以它们在表定义中出现的次序填充】
insert into 表名 (字段名1,2...) values(值1,2,...);              【VALUES必须以其指定的次序匹配指定的列名】
insert into 表名 values(值列表1),(值列表2)...;  【INSERT还存在另一种形式,可以利用它将SELECT语句的结果插入表中,这就是所谓的INSERT SELECT。】
insert into 表名 (部分字段列表) values(值列表1),(值列表2)...;         【添加数据】
update 表名 set 被修改字段=值,...[多个,号隔开] where (id=1); [判断条件id=1]    【修改数据】(如果没有加where条件,表示修改所有行,这个字段的值)
delete from 表名 where id=1; [判断条件id=1]                【删除数据】(如果没有where条件,表示删除整张表的数据;)
truncate 表名;

truncate速度快、truncate无法回滚

--------------------------------------------------------

select * from [数据库名.]表名;                 【查询整张表所有数据】
select 字段列表 from [数据库名.]表名;              【查询部分列表】
select * from [数据库名.]表名 [where 条件];
select 字段列表 from [数据库名.]表名 [where 条件];

SQL语句整理版

Mysql基础01-语法的更多相关文章

  1. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  2. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  3. mysql基础查询语法

    一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...

  4. MYSQL基础01(新增,修改,删除)

    首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...

  5. MySQL基础~~编程语法

    常量 数值 字符串:单引号或者双引号括起来.包括普通字符串或者日期格式的字符串. 布尔值:false(FALSE)对应数字值为0.true(TRUE)对应数字值为1. NULL:可以参考http:// ...

  6. mysql 基础sql语法总结(一)DDL

    mysql数据库: SQL数据库语言可分为四部分: 1.DDL:对数据库或表的进行操作结构操作 2.DML:对表的记录进行更新(增.删.改)* 3.DQL:对表的内容进行查询 **(重难点) 4.DC ...

  7. mysql 基础sql语法总结 (二)DML

    二.DML(增.删.改) 1)插入数据 第一种写法:INSERT INTO 表名 (列名1,列名2,,......)VALUES(列值1,列值2,......) 第二种写法:INSERT INTO 表 ...

  8. 【转】mysql基础汇总

    mysql基础知识语法汇总整理(二)  原文:https://www.cnblogs.com/cxx8181602/p/9525950.html 连接数据库操作 /*连接mysql*/ mysql - ...

  9. 01 mysql 基础一 (进阶)

    mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库 ...

  10. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

随机推荐

  1. idea用hibernate创建一个表两个主键时遇到的问题

    1>> idea功能简单,最大化的实现傻瓜式操作,不需要像eclipse一样手敲代码,尤其是在创建主键多个或者主键映射时. 2>> (1).首先,idea创建复合主键映射时,需 ...

  2. Linux命令实践( 六)

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@test ~]#awk -F: '{shells[$NF]++;if($ ...

  3. 重写equals方法,也应该重写hashcode方法,反之亦然

    yls 2019年11月07日 一方面 hashcode原则:两个对象equals相等,hashcode值一定相等 默认的hashcode是Object类通过对象的内存地址得到的 若重写equals而 ...

  4. docker swarm 过滤器affinity 限制副本不会出现在同一个节点上

    affinity:container!=容器服务名称(可以是正则) 举个例子:stack_ds.yaml # cat stack_dsc.yaml version: '3.0' services: t ...

  5. PHP 将数据从 Laravel 传送到 vue 的四种方式

    在过去的两三年里,我一直在研究同时使用 Vue 和 Laravel 的项目,在每个项目开发的开始阶段,我必须问自己 “我将如何将数据从 Laravel 传递到 Vue ?”.这适用于 Vue 前端组件 ...

  6. MySQL InnoDB 实现高并发原理

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  7. 前端小白在asp.net core mvc中使用ECharts

    对于在浏览器中绘制图形图表,目前有较多的js类库可以使用,如:ChartJS,Flot,canvasjs等,但是今天介绍的主角为国产图表库,并在apache孵化,就是大名鼎鼎的echarts. 前方高 ...

  8. 领扣(LeetCode)回文链表 个人题解

    请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂 ...

  9. C语言1博客作业06

    这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://www.cnblogs.com/sanying/p/11771502.html 我在这个课程的目标是 端正态度,认真对待 ...

  10. Pashmak and Graph(dp + 贪心)

    题目链接:http://codeforces.com/contest/459/problem/E 题意:给一个带权有向图, 找出其中最长上升路的长度. 题解:先按权值对所有边排序, 然后依次 u -& ...