首页
学习
活动
专区
工具
TVP
发布

【干货】MySql

数据库Mysql

数据库DataBase(DB)

DB2,关系型数据库,多用于银行系统

mysql启动与关闭

启动:cmd管理员运行àservices.msc打开服务窗口à找到服务启动

cmd管理员运行ànet startmysql

关闭:cmd管理员运行ànet stopmysql

登陆:cmd管理员运行àmysql -uroot-p

退出:登陆后exit

通过ip地址连接:mysql -h+ip地址-uroot -p

安装目录:mysql下

bin可执行文件

data数据

include c头信息

share错误信息

my.ini配置文件

数据目录:mysqldata下mysql-mysqlServer5.5下

数据库:文件夹

表:文件

数据:数据

SQL:Structured Query Language:结构化查询语言

定义了操作所有关系型数据库的规则

通用语法:

1可以单行或多行写,用分号结尾

2不区分大小写,建议大写关键字

3空格增强可读性

4

3种注释:

单行注释:-- 注释内容或#注释内容 (--后需要一个空格才可以写注释内容)

多行注释:/*注释*/

5 SQL分类:

1DDL(Data Definition Language)数据定义

数据库,表,表中列的 创建,修改,删除等。关键字:create, alter,drop,等

2DML(Data Manipulation Language)数据操作

表数据进行增删改。关键字:insert, delete, update 等

3DQL(Data Query Language)数据查询

查询表的数据。关键字:select, where 等

4DCL(Data Control Language)数据控制

定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

DDL:操作数据库和表

1操作数据库:CRUD

creat创建

创建新的数据库: createdatabase 数据库名称;

创建数据库,判断是否存在,并指定数据库字符集

createdatatbaseif not exists数据库名character set gbk;

retrieve查询

显示所有数据库名称: showdatabases; (information_schema视图)

查看指定数据库的字符集: showcreate database 数据库名称;

update修改

修改数据库字符集: alterdatabase 数据库名称 character set 字符集名称;

delete删除

删除数据库:drop database 数据库名称;

输出前看是否存在:drop databseif exists 数据库名;

使用数据库

使用数据库:use 数据库名;

查看正在使用的数据库名称: select database();

2操作表:

1creat创建

创建数据表:create table 表名(

列名1 数据类型1,

列名2 数据类型2,

列名k 数据类型k,

。。。

列名n 数据类型n

);

注意:最后一列数据类型不要逗号结尾

数据库类型: int 整数

double小数 score double(5,2) score 一共5位,小数点后保留2位

date日期,只包含年月日

datetime日期,包含年月日时分秒yyyy-MM-dd HH:mm:ss

timestamp时间错,包含年月日时分秒,默认系统时间

varchar字符串 name varchar(20)姓名最大20个字符

复制表:create table 表名 like 要被复制的表名;

2retrieve查询

查询某个数据库中所有的表名称: showtables;

查询表结构:desc 表名;

3update修改

修改表名:alter table 表名rename to 新表名;

修改表的字符集:alter table 表名character set 字符集;

添加一列:alter table 表名add 列名 数据类型;

修改列名称 类型:alter table 表名change 列名 新列名 新数据类型;

altertable表名 modify 列名 新数据类型;(换数据类型)

删除列

alter table表名 drop 列名;

4delete删除

drop table表名;

drop table if exists表名;

DML(DataManipulation Language)增删改表中数据:

1添加数据

insert into表名(列名1,列名2,。。。列名n)values(值1,2,n);

注意:列名和值要一一对应

insert into表名 values(值1,值2,。。);默认所有列都加入。

类型不要单双引号,其他类型需要

2删除数据

delete from表名 where 条件;

注意:如果不加条件则删除表中所有数据deletefrom 表名;不推荐使用,

truncate table表名; 删除表并创建一个一模一样的表,推荐使用,效率高

3修改数据

update表名 set 列名1 = 值1,列名2 = 值2,。。。【where 条件】

注意如果不加where条件,表中所有该列都会改变

DQL(DataQuery Language)查询

select*from表名; 查询表中所有内容

1.语法:

select

字段列表

from

表名列表

where

条件列表

group by

分组字段

having

分组之后的条件

order by

排序

limit

分页限定

2.基础查询

1.多个字段的查询

select字段名1,字段名2... from 表名;

注意: 如果查询所有字段,则可以使用*来替代字段列表。

2.去除重复: distinct

3.计算列

一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)

ifnull(表达式1,表达式2):null参与的运算,计算结果都为null

*表达式1:哪个字段需要判断是否为null

*如果该字段为null后的替换值。

4.起别名: as:as也可以省略

3.条件查询

1. where子句后跟条件

2.运算符

>、= 、= 、

BETWEEN...AND

IN(集合)

LIKE:模糊查询

占位符:

_:单个任意字符

%:多个任意字符

IS NULL and或 && or 或 || not 或 !

查询年龄大于20岁 SELECT * FROM student WHEREage >= 20;

查询年龄在20-30之间 SELECT * FROM student WHERE age BETWEEN 20 AND 30;

查询年龄22岁,18岁,25岁的信息 SELECT *FROM student WHERE age IN (22,18,25);

查询英语成绩为null SELECT * FROM student WHERE english IS NULL;

查询英语成绩不为null SELECT *FROM student WHERE english IS NOT NULL;

查询姓宋的有哪些? like SELECT * FROM student WHERE NAME LIKE '宋%';

查询姓名第二个字是中的人 SELECT *FROM student WHERE NAME LIKE "_中%";

查询姓名中包含建的人 SELECT *FROM student WHERE NAME LIKE '%建%';

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180923G13RPM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券