MYSQL 语法大全自己总结的

时间:2022-10-29 09:26:30

mysql语法大全

--------数据链接-------------------
--数据库服务启动
net start mysql

--关闭服务
net stop mysql

--登录 -u,-p后面不需要空格
mysql -uroot -p[密码]

--退出
exit;

----MySql用户管理---------

--数据库root密码修改
操作系统:windows操作系统,xp或win7.
1.dos命令行窗口 进入e:\mysql5.5\bin ,停止mysql 服务
    e:\mysql5.5\bin>net stop mysql
  注意:看看那任务管理器中是否有mysqld.exe进程,如有,kill them all.

2. 以不检查权限的方式启动mysql
   e:\mysql5.5\bin>mysqld.exe --skip-grant-tables
  你会看到窗口光标在下一行的第一个位置闪烁,这说明已经启动了,不需要管。

3. 新建一个命令行窗口同样进入到e:\mysql5.5\bin目录,启动mysql  
  e:\mysql5.5\bin>mysql

4. 修改root密码
 
  mysql>use mysql
 
  mysql>update user set password=PASSWORD('new_password') where user='root';
 
  mysql>flush privileges;
 
  mysql>quit

#增加用户
#格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码'
/*
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
*/
grant all privileges on wpj1105.* to sunxiao@localhost identified by '123';   #all privileges 所有权限

--------数据操作-------------------
--创建数据库
create database 数据库名

--跳转
use 数据库名

--显示数据库
show databases

--进入数据库
use 数据库名

--显示数据库的表
show tables;

--删除数据库
drop database 数据库名

--存在就删除
drop database if exists

--显示数据表
show tables

--判断是否存在,存在删除
dorp table if exists 数据表

--创建数据表
create table student(
 id int auto_increment primary key,
 name varchar(50),
 sex varchar(20),
 date varchar(50)  --最后个字段不加逗号
)default charset=utf8;

--删除表
drop table + 表名

--查看表结构
describe +(表名) #desc student

--插入数据
insert into student values(null,'小郑','男','2014-07-09');
    --调用自增长列可以是
insert into student(name,sex,date) values('小郑','男','2014-07-09');
--删除数据

delete from student where id = 1;

/***************************** mysql 查询 ***********************/
--and 且
select * from student where date>'1988-1-2' and date<'1988-12-1';

--or 或
select * from student where date<'1988-11-2' or date>'1988-12-1';
 
--between
select * from student where date between '1988-1-2' and '1988-12-1';

--in 查询制定集合内的数据
select * from student where id in (1,3,5);

#排序 asc 升序  desc 降序
select * from student order by id asc;

--分组查询 #聚合函数
select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as '求平均' from student;

select count(*) from student;   #统计表中总数

select count(sex) from student;   #统计表中性别总数  若有一条数据中sex为空的话,就不予以统计~

select sum(id) from student;

--查询第i条以后到第j条的数据(不包括第i条) --这里可以做分页查询
select * from student limit 2,5; --显示3-5条数据

/****************************** 数据表的约束 *************************/
约束的作用:1、完成数据的校验,2、为了维护数据的完整性,3、有相互的依赖数据,可以保证数据不被删除。
--常用的5类约束

not null:非空约束,指定某列不为空
unique: 唯一约束,指定某列和几列组合的数据不能重复
primary key:主键约束,指定某列的数据不能重复、唯一
foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
check:检查,指定一个表达式,用于检验指定数据

注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果;  
根据约束数据列限制,约束可分为:
单列约束:每个约束只约束一列
多列约束:每个约束约束多列数据

1、not null

非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。
Null类型特征: 所有的类型的值都可以是null,包括int、float等数据类型 空字符串””是不等于null,0也不等于null
create table temp(        
id int not null,        
name varchar(255) not null default ‘abc’,        
sex char null
)

--alter 来添加非空约束
alter table student modify sex varchar(2) not null;

--取消非空约束
alter table student modify sex varchar(2) null;

--取消非空约束添加默认值
alter table student modify sex varchar(2) defualt '男';

2、unique

唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个null,同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。 MySQL会给唯一约束的列上默认创建一个唯一索引;
--在创建表的时候添加 唯一约束
create table temp (        
id int not null,        
name varchar(25),        
password varchar(16),
constraint uk_name_pwd unique(name, password)
);

--alter的方式添加唯一约束

--为student表的 name 列添加唯一约束
alert table student add unique(name)
--添加一条数据
insert into student values(null,'小郑','男','2013-08-09')
--添加同名的小郑
insert into student values(null,'小郑','男','2013-08-04')
--mysql 抛出异常
ERROR 1062 (23000): Duplicate entry '小郑' for key 'name'
nane 字段出现重复的条目 ‘小郑’

--修改唯一约束(这里有问题)
alter table student modify name varchar(3) unique;

--删除唯一约束
alter table student drop index name;

3、primary key(一般更随表创建的时候创建-->每一张数据表都应该有主键列)

主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的值不允许重复。 每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。
MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。
列模式:
create table temp(    
id int primary key,    
name varchar(25)
);  
create table temp2(    
id int not null,    
name varchar(25),    
pwd varchar(15),    
constraint pk_temp_id primary key(id)
);  
组合模式:
create table temp2(    
id int not null,    
name varchar(25),    
pwd varchar(15),    
constraint pk_temp_id primary key(name, pwd)
);
--alter删除主键约束
alter table temp drop primary key;

alter添加主键
alter table temp add primary key(name, pwd);

--alter修改列为主键
alter table temp modify id int primary key;  
--设置主键自增
create table temp(        
id int auto_increment primary key,        
name varchar(20),        
pwd varchar(16)
);
auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。

4、foregin key
外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。 也就是说从表的外键值必须在主表中能找到或者为空。 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据, 然后才可以删除主表的数据。还有一种就是级联删除子表数据。
注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录, 那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。
创建外键约束:
主表
create table classes(        
id int auto_increment primary key,        
name varchar(20)
);
从表
create table student(        
id int auto_increment,        
name varchar(22),        
constraint pk_id primary key(id),        
classes_id int references classes(id)
);  
通常先建主表,然后再建从表,这样从表的参照引用的表才存在。
表级别创建外键约束:
create table student(        
id int auto_increment primary key,        
name varchar(25),                       
classes_id int,        
foreign key(classes_id) references classes(id)
);
上面的创建外键的方法没有指定约束名称,系统会默认给外键约束分配外键约束名称,命名为student_ibfk_n, 其中student是表名,n是当前约束从1开始的整数。  
指定约束名称:
create table student(        
id int auto_increment primary key,        
name varchar(25),        
classes_id int,               
constraint fk_classes_id foreign key(classes_id) references classes(id)
);  
多列外键组合,必须用表级别约束语法:
create table classes(        
id int,        
name varchar(20),        
number int,        
primary key(name, number)
);
create table student(        
id int auto_increment primary key,        
name varchar(20),        
classes_name varchar(20),        
classes_number int,               
foreign key(classes_name, classes_number) references classes(name, number)
);  
--删除外键约束:
alter table student drop foreign key student_ibfk_1;
alter table student drop foreign key fk_student_id;

--增加外键约束:
alter table student add foreign key(classes_name, classes_number) references classes(name, number);

ALTER TABLE bbsReply ADD CONSTRAINT FK_bbsReply_bbsSection FOREIGN KEY  (RSID)
 REFERENCES bbsSection (SID),

自引用、自关联(递归表、树状表)
create table tree(        
id int auto_increment primary key,        
name varchar(50),        
parent_id int,        
foreign key(parent_id) references tree(id)
);  
级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on delete cascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。
create table student(        
id int auto_increment primary key,        
name varchar(20),        
classes_name varchar(20),        
classes_number int,         /*表级别联合外键*/        
foreign key(classes_name, classes_number) references classes(name, number) on delete cascade
);

5、check
MySQL可以使用check约束,但check约束对数据验证没有任何作用。
create table temp(        
id int auto_increment,        
name varchar(20),        
age int,        
primary key(id),
check(age > 20)
);
上面check约束要求age必须大于20,但没有任何作用。但是创建table的时候没有任何错误或警告。

MYSQL 语法大全自己总结的的更多相关文章

  1. MySQL语法大全整理的自学笔记

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  2. MySQL语法大全&lowbar;自己整理的学习笔记(MySQL语句 整理二)

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  3. MySQL语法大全

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  4. MySQL 函数大全

    mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NU ...

  5. MySQL 资源大全

    干货!MySQL 资源大全 提交 我的留言 加载中 已留言 shlomi-noach 发起维护的 MySQL 资源列表,内容覆盖:分析工具.备份.性能测试.配置.部署.GUI 等. 伯乐在线已在 Gi ...

  6. Emmet语法大全手册

    这是基于官方手册整理制作的,因为那个手册网页打开很慢,所以就整理在这里了.以备不时之需. Syntax   Child: > nav>ul>li <nav> <ul ...

  7. Inno Setup脚本语法大全

    Inno Setup脚本语法大全 ResourceShare Bruce 11个月前 (10-28) 6136浏览 0评论   Inno Setup 是什么?Inno Setup 是一个免费的 Win ...

  8. 常用mysql命令大全

    常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再 ...

  9. Razor语法大全&lpar;转&rpar;

    Razor语法大全 因为最近在看mvc的时候在学习Razor的发现了这个不错的博文,故转之. 本文页面来源地址:http://www.cnblogs.com/dengxinglin/p/3352078 ...

随机推荐

  1. Bootstrap的字体文件woff2 报错

    在iis上看到网站有个404,于是强迫症来了... 百度了许久,知道了解决办法,记下来,是网站默认没有支持这种字体 在 Web.config 的 system.webServer 节点中添加: 带标签 ...

  2. JS SDK 随手笔记

    JS SDK 随手笔记 窗口模块 Frame/Multi Frame 对话框 页面间的通讯 生命周期 窗口层叠 窗口模块 窗口模块是是AppCan移动应用界面最基本的单位.窗口是每个界面布局的基础,他 ...

  3. JS获取Url参数的通用方法

    //获取URL中的参数 function request(paras) { var url = location.href.replace('#', ''); var paraString = url ...

  4. WaterWave

    WaterWave.rar

  5. Eclipse 编码区-保护色-快捷大全

    Eclipse快捷键大全 Eclipse编码区-保护色-快捷设置 1.设置路径:         windows-preferences-general-editors-text Editors-ba ...

  6. MySql分页查询慢|这里告诉你答案

    一.背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx li ...

  7. Python&plus;OpenCV图像处理(十六)—— 轮廓发现

    简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果. 代码如下: import cv2 as cv import numpy as np def c ...

  8. 20145311王亦徐 《网络对抗技术》 MSF基础应用

    20145311王亦徐 <网络对抗技术> MSF基础应用 实验内容 掌握metasploit的基本应用方式以及常用的三种攻击方式的思路 主动攻击,即对系统的攻击,不需要被攻击方配合,以ms ...

  9. python笔记4-if&period;&period;elif-else条件语句

    python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下: #if是布尔类型判断,1个是真1个是假 ...

  10. Rainmeter 一部分 语法 中文教程

    ;Meter基本元素示例:;如果是[MeterStyle]表示Meter的公共Style,类似CSS的意义!!!;颜色可以使用网页的颜色定义方式,如半透明黄色:255.255.0.128=FFFF00 ...