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

mysql数据库操作

数据库管理系统DBMS

数据库的cmd开启和关闭命令

net start mysql#开启Windows服务

net stop mysql#关闭Windows服务

用户授权操作

-用户管理,虽然用户的信息也是保存在mysql中的一个数据库中,但是直接操作用户信息不方便,用以下的特殊命令

创建用户

create user 用户名@IP地址 identified by '密码'; --这里的IP地址可以写localhost表示本地

删除用户

drop user 用户名@IP地址;

修改用户

rename user 用户名@IP地址 to 新用户名@IP地址;

修改密码

set password for 用户名@IP地址 = '新密码'

-授权管理,默认用户对每个数据库和表都没有查改删增的权限

grant 权限 on 数据库.表 to 用户名@IP地址 ---授对应的权

show grants for 用户名@IP地址 --查看权限

revoke 权限 on 数据库.表 from 用户名@IP地址 --取消对应的权限

注意:在创建用户时的IP地址对用户的登录有限制,必须在对应的IP下登录数据库

数据库基本操作(cmd下)

-查看

show databases;

-创建数据库

create database 数据库名称 default charset utf8 collate utf8 general_ci;--设置字符集和排序规则都是utf9

-使用(打开)数据库

use 数据库名称;

-删除数据库

drop 数据库名称;

数据表基本操作

-创建表

create table 表名 (列名 类型 是否可以为空,...)engine = innoDB default charset = utf8--innodb支持事务操作

-查看所有表

show tables;

-查看表结构(表设计)

desc 表名

-删除表

drop table 表名;直接删除表

delete from 表名; 清空表内容,但不清空自增序号

truncate table 表名;清空表内容,速度快,自增序号也清空

-更改表结构

alter table 表名 add 列名 类型 --添加列

alter table 表名 drop column 列表--删除列

alter table 表名 change 原列名 新列名 类型--列名和类型都修改

alter table 表名 modify column 列名 类型--只能改类型

主键、外键、默认值、自增

添加主键,alter table 表名 add primary key(列名)

删除主键,alter table 表名 drop primary key

alter table 表名 modify 列名 int,drop primary key

添加外键,alter table 从表 add constraint 外键名称 foreign key 从表(外键字段) references 主表(主键字段)

删除外键,alter table 表名 drop foreign key 外键名称

自增auto_increment

默认值,例:age int default 19

SQL操作

-查询

select * from 表名;

-增

insert into 表名(name,age) values('du',22)

insert into 表名(name,age) values('du',22),('du',22),('du',22);

-一个表的内容插入到另一个表

insert into 表(列名) select (列名) from 表 [where]

-删

delete from 表;

delete from 表 where id=1 and name='du'

-改

update 表 set name='l' where id >1

注:查用*速度低

select * from 表 where nid >=12

select nid ,name,age from 表

高级查询

a,条件

select * from 表 where id >1 and name != 'du';

select * from 表 where id between 5 and 14;

select * from 表 where id in (11,22)

select * from 表 where id not in (11,22)

select * from 表 where id in (select nid from 表)

b,通配符 _一个,%多个

select * from 表 where name like 'du%' du开头的所有

select * from 表 where name like 'du_'

c,限制

select * from 表 limit 4;取前4条

select * from 表 limit 4,5 从第4行开始的5条数据

select * from 表 limit 5 offset 4;从第4行开始的5条数据

d,排序

select * from 表 order by 列 desc

select * from 表 order by 列1 desc,列2 asc

e,分组

select * from 表 group by 列

聚合函数,count,max,min;在分组中有聚合函数的话引入having

特别的:group by 必须在where之后,order by 之前

f,连表

select * from a,b where a.x=b.o

#join

select * from a left join b on a.x=b.o

谁在前谁是主表,信息显示全

right join

inner join,永远不会出现Null,优先用left join效率高

g,组合

select nid from A union select nid from B ,自动去重;如果是union all不处理重合

mysql中的基本数据类型

数值

#二进制

bit[m] 二进制位,m表示二进制位长度,默认为1

#整数

tinyint -128~127,0~255

smalint

int

bigint

----默认是有符号,unsigned

----范围不一样

#小数

decimal[m[,d]],m为总长度,d为几位小数 --精确的,记录工资

float

double

字符串

#定长

char--

create table tb1(n char(7),b int,c int)

定长,查找速度快,浪费空间

变长,查找速度慢,节省空间

#变长

varcar

text

mediumtext

longtext

二进制数据

tinyblob

blob

mediumblob

longblob

时间

data YYYY-MM-DD

time HH:MM:SS

year YYYY

datetime YYYY-MM-DD HH:MM:SS

timestamp YYYYMMDD HHMMSS

枚举enum

集合类型set

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券