mysql中sql由定义_Mysql基础01-语法

数据库

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

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

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

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

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地址                         【删除权限】

数据类型

ff36b818d8d3fbab68d463f492a660ca.png

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),必须指定宽度

793f06d8a9a78a7dd6f1401c9b386bf5.png

其他类型: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-语法"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/8292.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值