mysql中betwwen and_数据库学习之mysql数据库

参考链接网站:

http://c.biancheng.net/view/2361.html

Mysql的版本以及版本号

MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。

MySQL Enterprise Server(企业版):该版本能够以很高的性价比为企业提供数据仓库应用,支持 ACID 事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能,但是该版本需要付费使用,官方提供电话技术支持。

Mysql服务器端实用工具:

http://c.biancheng.net/view/2395.html

Mysql数据库的安装教程:

自行百度

Mysql创建数据库

create dababase [if not exists] 数据库名

default character set utf8

default collate utf8_chinese_ci;

Mysql查看数据库

show database [like ‘数据库名‘];

Mysql修改数据库

alter database [数据库名]

default character set utf8

default collate utf8_chinese_ci;

Mysql删除数据库

drop database [数据库名];

Mysql选择数据库

use [数据库名];

Mysql存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

在Mysql5.5.5之后,InnoDB作为默认的存储引擎

查看支持的引擎

show engines

修改默认引擎

set default_storage_engine=[引擎名];

当再次重启时,还是原来的引擎

Mysql常见的数据类型

http://c.biancheng.net/view/2421.html

Mysql创建数据表

创建表

create table 表名

(

字段名 数据类型,

字段名 数据类型,

字段名 数据类型

);

查看表结构

desc 表名

show create table 表名\G;

Mysql修改数据表

常见的修改表的操作有修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等

添加字段

alter table 表名 add 新字段名 数据类型 约束条件[first|after 已存在的字段名];

FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段;AFTER 为可选参数,其作用是将新添加的字段添加到指定的已存在的字段名的后面。

修改字段数据类型

alter table 表名 modify 字段名 数据类型;

删除字段

alter table 表名 drop 字段名;

修改字段名称

alter table 表名 change 旧字段名 新字段名 新数据类型:

修改表名

alter table 旧表名 rename to 新表名:

Mysql删除数据表

drop table 表名;

Mysql主键

“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。

创建设置主键约束

create table 表名

(

id int(11) primary key,

name varchar(25)

);

或者

create table 表名

(

id int(11),

name varchar(25),

primary key(id)

);

Mysql外键约束

MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。

外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键的值必须等于另一个表中主键的某个值。

外键是表的一个字段,不是本表的主键,但对应另一个表的主键。定义外键后,不允许删除另一个表中具有关联关系的行。

创建设置外键约束

首先创建主键

create table name1

(

id int(11) primary key,

name varchar(22) not null,

location varchar(50)

);

建立外键约束

create table name2

(

id int(11) primary key,

name varchar(25),

deptid int(11),

salary float,

foreign key(depid) references name1(id)

);

在修改表时添加外键约束

ALTER TABLE tb_emp2

ADD CONSTRAINT fk_tb_dept1

FOREIGN KEY(deptId)

REFERENCES tb_dept1(id);

删除外键约束

ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;

查看表中的约束

show create table 表名;

Mysql去重

select distinct 字段名 from 表名;

Mysql设置别名

表名 as 别名

列名 as 列别名

Mysql限制查询结果的记录条数

limit 位置偏移量 行数

limit 4,3和mysql中可以使用的limit 4 offset 3一样

Mysql对查询结果进行排序

order by {列名|表达式|位置} [ASC|DESC]

Mysql条件查询

单一条件:

select name,height from users where name=‘zhangsan‘;

多条件的查询语句:

select * from users where age>21 and height>=175;

使用like的模糊查询:

表达式1 not like 表达式2

Mysql支持的通配符:

百分号%

百分号是Mysql中常用的一种通配符,在过滤条件中,百分号可以表示任何字符串,并且该字符串可以实现任意次。

下划线_

下划线通配符和百分号通配符的用途一样,下划线只匹配单个字符,而不是多个字符,也不是0个字符

Mysql常用运算符

算术运算符:

加、减、乘、除、取余

比较运算符:

= < <= > >= <=> <>或!=

isnull

is not null

betwwen and

least

greatest

in

not in

逻辑运算符:

not或者! 逻辑非

and或者&& 逻辑与

or或者|| 逻辑或

xor 逻辑异或

位运算符:

| 按位或

& 按位与

^ 按位异或

<< 按位左移

~ 按位取反,反转所有比特

无法确定优先级的情况下,可以使用()来改变优先级。

Mysql内连接查询

内连接是通过在查询中设置连接方式,来移除查询结果集中某些数据行后的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。

在MySQL FROM 子句中使用关键字 INNER JOIN 连接两张表,并使用 ON 子句来设置连接条件。

select 列名1,列名2 from 表名 inner join 表名 [on 子句]

内连接是系统默认的表连接,所以在from子句后可省略Inner关键字,只用关键字join。

Mysql外连接查询

外连接先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足的条件

左外连接又称为左连接,在 FROM 子句中使用关键字 LEFT OUTER JOIN 或者 LEFT JOIN,用于接收该关键字左表(基表)的所有行,并用这些行与该关键字右表(参考表)中的行进行匹配,即匹配左表中的每一行及右表中符合条件的行。

左外连接:

select name,dept_name form tb_students_info s left outer join tb_departments d on s.dept_id=d.dept_id;

右外连接:

select name,dept_name form tb_students_info s right outer join tb_departments d on s.dept_id=d.dept_id;

Mysql子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从Mysql4.1开始引入,在select子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表

子查询中常用的运算符

IN 子查询

[not] in

比较运算符子查询

{= | < | > | >= | <= | <=> | < > | != }{ ALL | SOME | ANY}

子查询实例:

select name from users where dept_id in (select dept_id from users2 where dept_type=‘a‘);

select name from users where dept_id <> (select dept_id from users2 where dept_type=‘a‘);

select name from users where exists (select dept_id from users2 where dept_type=‘a‘);

Mysql分组查询

允许使用group by子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。

group by {列名|表达式|位置} [ASC|DESC]

select dept_id,group_concat(name) as names from users group by dept_id;

Mysql指定过滤条件

having子句过滤分组条件(主要用来过滤组)

having 条件

实例:

select dept_id,group_concat(name) as names from users group by dept_id having count(name)>1;

Mysql正则表达式查询

Mysql插入数据

1.insert...values语句

insert into 表名(列名) values(值);

2.insert...set语句

insert into 表名 set 列名1=值1 列名2=值2;

Mysql修改语句

update 表名 set 字段1=值1[,字段2=值2...][where 子句][order by 子句][limit 子句]

Mysql删除数据

删除表中的数据

delete from 表名 [where 子句][order by 子句][limit 子句]

Mysql视图简介

视图是数据库系统中一种非常有用的数据库对象。

视图是一个虚拟表,其内容由查询定义。

Mysql自定义函数

create function 函数名(参数1 类型1[,参数2 类型2])

return 类型

函数主体

create function StuNnameById()

return varchar(45)

return

(select name from 表 where id=1);

删除自定义函数

drop function 自定义函数名

Mysql存储过程简介

存储过程是一组为了完成特定功能的 SQL 语句集合。一个存储过程是一个可编程的函数,它在数据库中创建并保存,一般由 SQL 语句和一些特殊的控制结构组成。

Mysql触发器简介

触发器与表关系密切,主要用于保护表中的数据。特别是当有多个表具有一定的相互联系的时候,触发器能够让不同的表保持数据的一致性。

Mysql索引

索引是 MySQL 数据库中的重要对象之一,用于快速找出某个列中有某一特定值的行。

Mysql创建用户

创建用户

create user 用户名 [identified] by [password] 口令

用户名:指定创建用户账号,格式为 ‘user_name‘@‘host_name‘。这里user_name是用户名,host_name为主机名,即用户连接 MySQL 时所在主机的名字。若在创建的过程中,只给出了账户的用户名,而没指定主机名,则主机名默认为“%”,表示一组主机。

password:可选项,用于指定散列口令,即若使用明文设置口令,则需忽略PASSWORD关键字;若不想以明文设置口令,且知道 PASSWORD() 函数返回给密码的散列值,则可以在口令设置语句中指定此散列值,但需要加上关键字PASSWORD。

identified by子句:用于指定用户账号对应的口令,若该用户账号无口令,则可省略此子句。

口令:密码

create user ‘james‘@‘localhost‘ identified by ‘tiger‘;

mysql -h localhost -u james -p;

修改用户

rename user 旧用户 to 新用户

eg:rename user james@‘localhost‘ to jack@‘localhost‘;

修改用户密码

set password for ‘jack‘@‘localhost‘=password(‘lion‘);

Mysql删除用户

drop user ‘jack‘@‘localhost‘;

Mysql用户授权

转载链接:http://c.biancheng.net/view/2615.html

当成功创建用户账户后,还不能执行任何操作,需要为该用户分配适当的访问权限,可以使用show grant for查看用户的权限

语法格式:

GRANT

[ ( ) ] [ , [ ( ) ] ]

ON TO

其中的格式:

[ IDENTIFIED ] BY [ PASSWORD ]

[ WITH GRANT OPTION]

| MAX_QUERIES_PER_HOUR

| MAX_UPDATES_PER_HOUR

| MAX_CONNECTIONS_PER_HOUR

| MAX_USER_CONNECTIONS

eg:grant select,insert on . to ‘testUser‘@‘localhost‘ identified by ‘testpwd‘ with grant option;

Mysql删除用户权限

转载链接:http://c.biancheng.net/view/2616.html

Mysql数据库中可以使用revoke语句删除一个用户的权限,此用户不会被删除

revoke insert on . from ‘testuser‘@‘localhost‘;

Mysql事务

MySQL 数据库中事务是用户一系列的数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

数据库备份

使用select into outfile

SELECT * FROM test_db.tb_students_info

INTO OUTFILE ‘C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/file.txt‘

FIELDS TERMINATED BY ‘"‘

LINES TERMINATED BY ‘?‘;

数据库导入

create table name;

LOAD DATA INFILE ‘C:/ProgramData/MySQL/MySQL Server 5.7/

Uploads/file.txt‘

INTO TABLE test_db.name

FIELDS TERMINATED BY ‘,‘

OPTIONALLY ENCLOSED BY ‘"‘

LINES TERMINATED BY ‘?‘;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值