MySQL数据库操作(一)
一、数据操作
1.显示数据库
show databases;
2.创建数据库
#utf-
create database 数据库名称 default charset utf8 collate utf8_general_ci; 3 #gbk
4 create datahase 数据库名称 default charset utf8 gbk collate gbk_chinese_ci;
3.使用数据库
use 数据库名称
4.用户管理
.创建用户
create user '用户名'@'IP地址' identified by ‘密码’;
.删除用户
drop user '用户名'@ 'IP地址;
.修改用户
rename user '用户名'@ 'IP地址'; to '新用户'@ 'IP地址;
.权限管理
查看权限:show grant for ‘用户’@’IP地址’;
授权:grant 权限 on 数据库.表 to ‘用户’@’IP地址’;
取消授权:revoke 权限 on 数据库.表. from ‘用户’@’IP地址’;
出grant外所有的权限:all privileges
插入权限:select,insert
特殊情况:忘记密码
# 启动免授权服务端
mysqld --skip-grant-tables # 客户端
mysql -u root -p # 修改用户名密码
update mysql.user set authentication_string=password('') where user='root';
flush privileges;
二、数据表基本操作
1.创建表
(1)
create table 表名(
列名 类型 是否可以为空 auto_increment primary key,
列名 类型 是否可以为空
)engine=ioondb, default chartset=utf8;
或者
create table 表名(
列名 类型 是否可以为空 ,
列名 类型 是否可以为空,
primary key(列名,列名)
)engine=ioondb, default chartset=utf8;
(2)创建外键
create table 表名1(
列名1 类型 不为空 auto_increment primary key,
列名2 类型 是否可以为空
)engine = innodb,default charset = utf8; create table 表名2(
列名3 类型 不为空 auto_increment primary,
列名4 类型 是否可以为空
constraint fk_xx foreign key (l列表名4) references 表名1 (列表名2)
)engine = innodb default charset = utf8;
2.删除表
drop table 表名;
3.清空表
delete from 表名;
truncate table 表名;
4.修改表
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
alter table 表名 modify column 列名 类型; -- 类型
alter table 表名 change 原列名 新列名 类型; -- 列名,类型 添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key; 添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称; 修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT ;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
5.基本数据类型
MySQL的数据类型大致分为:数值、时间和字符串
bit[(M)]
二进制位(),m表示二进制位的长度(-),默认m= tinyint[(m)] [unsigned] [zerofill] 小整数,数据类型用于保存一些范围的整数数值范围:
有符号:
- ~ .
无符号:
~ 特别的: MySQL中无布尔值,使用tinyint()构造。 int[(m)][unsigned][zerofill] 整数,数据类型用于保存一些范围的整数数值范围:
有符号:
- ~
无符号:
~ 特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(),当插入数据2时,select 时数据显示为: bigint[(m)][unsigned][zerofill]
大整数,数据类型用于保存一些范围的整数数值范围:
有符号:
- ~
无符号:
~ decimal[(m[,d])] [unsigned] [zerofill]
准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。 特别的:对于精确数值计算时需要用此类型
decaimal能够存储精确值的原因在于其内部按照字符串存储。 FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。
无符号:
-3.402823466E+38 to -1.175494351E-38, 1.175494351E-38 to 3.402823466E+38
有符号: 1.175494351E-38 to 3.402823466E+38 **** 数值越大,越不准确 **** DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 无符号:
-1.7976931348623157E+308 to -2.2250738585072014E-308 2.2250738585072014E-308 to 1.7976931348623157E+308
有符号: 2.2250738585072014E-308 to 1.7976931348623157E+308
**** 数值越大,越不准确 **** char (m)
char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度。
PS: 即使数据小于m长度,也会占用m长度
varchar(m)
varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。 注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡 text
text数据类型用于保存变长的大字符串,可以组多到65535 (** − )个字符。 mediumtext
A TEXT column with a maximum length of ,, (** − ) characters. longtext
A TEXT column with a maximum length of ,,, or 4GB (** − ) characters. enum
枚举类型,
An ENUM column can have a maximum of , distinct elements. (The practical limit is less than .)
示例:
CREATE TABLE shirts (
name VARCHAR(),
size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
);
INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small'); set
集合类型
A SET column can have a maximum of distinct members.
示例:
CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d'); DATE
YYYY-MM-DD(--/--) TIME
HH:MM:SS('-838:59:59'/'838:59:59') YEAR
YYYY(/) DATETIME YYYY-MM-DD HH:MM:SS(-- ::/-- :: Y) TIMESTAMP YYYYMMDD HHMMSS(-- ::/ 年某时)
三、表内容操作
1.增
insert into 表名 (列名,列名...) values (值,值,值...);
insert into 表名 (列名,列名...) values (值,值) ,(值,值)...;
2.删
delete from 表;
delete from 表 where id = and name ='yan';
3.改
update 表 set name = 'yan' where id> or name = 'xxx';
4.查
select * from 表;
select id,name from 表;
select id,name from 表 where id> or name = 'yan';
select id,name as cname from 表 where id> or name = 'yan';
其他语句:
条件:
select * from 表where id > and name != ‘yan’ and num=;
select * from 表where id in (,,);
select * from 表where id not in (,,);
select * from 表where id in (select id from db1);
select * from 表where id between and ; 通配符
select * from 表名 where name like 'ya% ; -ya开头的所有(多个字符)
select * from 表名 where name like 'ya_'; -ya开头的所有(一个字符)
限制
select * from 表 limit5; -前5行
select * from 表 limit3,; -从三行到第5行
select * from 表 limit3 offset ; -从第4行到第5行
排序
select * from 表 order by 列 asc; -根据“列”从小到大排列
select * from 表 order by 列 besc; -根据“列”从大到小排列
select * from 表 order by id desc limit ; -先排序再找
select * from 表 order by 列表1 desc,列表2 asc; - 根据 “列1” 从大到小排列,如 果相同则按列2从小到大排序
连表
select * from 表1 left join 表2 on 表1.id = 表2.name;
5.查看表结构
desc 表名;
6.查看表创建语句
show create table 表名\G;
7.自增步长
.基于会话级别
show session variaoles like 'auto_inc%'; 查看全局变量
set session auto_increment_increment=; 设置会话步长
.基于全局级别:
show global variables like 'auto_inc%'; 查看全局变量
set global auto_increment_increment=; 设置会话步长
MySQL数据库操作(一)的更多相关文章
- php : mysql数据库操作类演示
设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...
- php MySQL数据库操作类源代码
php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...
- 设计模式 - 单例模式mysql数据库操作类
待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- Python/MySQL(四、MySQL数据库操作)
Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: case when id>9 then ture else false 二.三元运算: if(isnull(xx)0, ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- Python进行MySQL数据库操作
最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...
- Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...
- (转载)常用的Mysql数据库操作语句大全
打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...
随机推荐
- cacheed 限制 4节点 3000万 es 批量删除 shell脚本练习 elasticsearch_action
文件分割 "www.laiwunews.cn/xinxi/25324717.html""www.zznews.cn/xinxi/10411214.html"&q ...
- TensorFlow alexnet在华为Mate10上运行方法
我使用的caffe模型:https://github.com/BVLC/caffe/tree/ea455eb29393ebe6de9f14e88bfce9eae74edf6d/models/bvlc_ ...
- 【模板】 倍增lca
虽然很基础,但是还是复习了一下,毕竟比树剖好写... 代码: #include<iostream> #include<cstdio> #include<cmath> ...
- jquery得到焦点和失去焦点
鼠标在搜索框中点击的时候里面的文字就消失了,经常会用到搜索框的获得焦点和失去焦点的事件,接下来介绍一下具体代码,感兴趣的朋友额可以参考下 input失去焦点和获得焦点 鼠标在搜索框中点击的时候里面 ...
- maven+ssm+oracle实现简单的增删改查
首先看一下项目结构 第一步先导入jar包 pom.xml <properties> <spring.version>4.3.18.RELEASE</spring.vers ...
- 服务器上oracle的监听设置
1.查看本机的计算机名 2.修改etc/host 3.修改oracle的listener.ora(我服务器上的路径:) 4.修改tnsnames.ora(和上边文件一个目录)
- viewDidUnload,viewDidLoad,viewWillAppear,viewWillDisappear的作用以及区别
viewDidLoad:在视图加载后被调用 viewWillAppear:视图即将可见时调用.默认情况下不执行任何操作 viewDidAppear: 视图已完全过渡到屏幕上时调用 viewWillDi ...
- 315 Count of Smaller Numbers After Self 计算右侧小于当前元素的个数
给定一个整型数组 nums,按要求返回一个新的 counts 数组.数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于nums[i] 的元素的数量.例子:给定 nu ...
- Zookeeper的临时节点和永久节点
Zookeeper中节点分为两种:临时节点和永久节点. 临时节点有一个节点: 当创建临时节点的程序停掉之后,这个临时节点就会消失. 更直观的,如下 Persistent是临时节点. Persist ...
- Spring Cloud (10) Hystrix-监控面板
Hystrix DashBoard 断路器是根据一段时间窗内的请求状况来判断并操作断路器的打开和关闭状态的.Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界 ...