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 ...
随机推荐
- idea2016的使用心得 --- 太棒了
今天打开myeclipse感觉里面全是project,也懒着换地方了,因为这些代码还要时常看,索性安装了idea试试水,感觉还不错,用起来并不比myeclipse差,跟webstorm差不多,他俩就是 ...
- 【NYOJ42】一笔画问题
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 Position:http://acm.nyist.net/JudgeOnline/problem.php?pid= ...
- 开发PL/SQL子程序和包及使用PL/SQL编写触发器、在JDBC中应用Oracle
1. 子程序的各个部分: 声明部分.可执行部分.异常处理部分(可选) 2.子程序的分类: A. 过程 - 执行某些操作 a. 创建过程的语法: CREATE [OR REPLACE] PROC ...
- 2243: [SDOI2011]染色(树链剖分+线段树)
2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 8400 Solved: 3150[Submit][Status ...
- kmp的练习们
//poj3461 Oulipo //kmp模板 统计子串在母串中的位置 #include<iostream> #include<cstdio> #include<cst ...
- Tyvj1305最大子序和(单调队列优化dp)
描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7当m=2或m=3时,S=5+1=6 输入 ...
- 分享一些对IT人员非常好用的资源
前言 分享一下本人工作至今整理的一些好用的资源,这些资源主要是一些工作和生活中用到的文档.软件和网站. 文档主要是面试相关的文档和技术文档,其中面试文档主要是Java这块的,技术文档就有很多,除了Ja ...
- ACM_三元一次函数解法(克莱姆法则)
三元一次函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 计算三元一次函数..如图 Input: EOF,先输入n,表示样例个 ...
- 简单 android popupwindow 实现
1. popupWindow 设置大小: popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT, ViewGr ...
- jsp: ServletContext
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对象中维护了ServletContext对象的引用,开发 ...