mysql总结
来源:互联网 发布:淘宝直播广告图片 编辑:程序博客网 时间:2024/06/06 09:19
mysql是现在非常流行的(RDBMS:Relational Database Management System)关系型数据库,因为它的性能非常好,更重要的是免费的,一般中小型企业完全是够用的。
Linux平台下安装mysql
需要的包:mysql服务器,mysql-client客户端程序,mysql-devel库和包含文件,mysql-shared,mysql-bench
rpm -qa | grep mysql
rpm -e mysql
rpm -e --nodeps mysql
yum install mysql
yum install mysql-server
yum install mysql-devel
service mysqld start
如果用的是Centos7版本,可以直接使用mariadb --> yum install mariadb-server mariadb
systemctl start mariadb #启动mariadb
systemctl stop mariadb #停止mariadb
systemctl restart mariadb #重启mariadb
systemctl enable mariadb #设置开机启动
[root@xiangping]# mysql
mysql> show databases;//可以看到数据库列表
连接:mysql -u root -p *********
参数列表:
username 用户名
password 密码
dbname 数据库
port 服务器端口
host ip地址
创建数据库:create database 'dbname';
删除数据库:drop database 'dbname';
使用数据库:use dbname;
mysql的数据类型:
1.基本类型
浮点数值DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值
日期与时间类型
(字节)
字符串类型
创建数据库表:
CREATE TABLE `xp` (
`uid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户主键ID' ,
`username` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称' ,
`gender` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别' ,
`mobile` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '手机号' ,
`passwd` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码' ,
`createtime` datetime NULL DEFAULT NULL COMMENT '创建时间' ,
PRIMARY KEY (`uid`)
FOREIGN KEY (`did`) REFERENCES `device` (`did`) ON DELETE CASCADE ON UPDATE RESTRICT,
FOREIGN KEY (`mgid`) REFERENCES `macro_group` (`mgid`) ON DELETE CASCADE ON UPDATE RESTRICT,
INDEX `macro_dev_fk` (`did`) USING BTREE ,
INDEX `macro_macrogroup_fk` (`mgid`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=1
ROW_FORMAT=DYNAMIC;
删除数据库表:drop table tablename
添加数据:
insert into xp (uid,username,gender,mobile,passwd,createtime) values(1,'xiangping','男','13111111111','123456',now());
删除数据:
delete from xp where uid = 1
delete from xp where uid in(1,2,3)
delete from xp;
修改数据:
update xp set username = 'xp' where uid = 1
查询数据格式:
select 选择的列
from 表
where 查询的条件
group by 分组属性 having 分组过滤的条件
order by 排序属性
limit 起始记录位置,取记录的条数
select * from xp;
select * from where uid = 1;
select username,gender from xp where uid = 1;
select * from xp where gender = '男‘ and username like '%平%’;
select * from users where uid > 10 order by username desc;
select gender,count(*) as '个数' from users where uid > 10 group by gender;
select d.dname da.usbspeed from device d INNER JOIN device_attribute da ON d.did = da.did;
select * from users1 u1 left join users2 u2 on u1.id = u2.id left join users3 u3 on u2.id = u3.id;
select * from users1 u1 right join users2 u2 on u1.id = u2.idright join users3 u3 on u2.id = u3.id;
.....
查询数据练习:
1.子句查询:http://www.cnblogs.com/chiangchou/p/mysql-2.html
2.子查询:http://www.cnblogs.com/chiangchou/p/mysql-3.html
mysql数据库正则:
查找name字段中以'st'为开头的所有数据:select name from person where name regexp '^st'
查找name字段中以'ok'为结尾的所有数据:select name from person where name regexp 'ok&'
查找name字段中以元音字符开头或以'ok'字符串结尾的所有数据:select name from person where name regexp '^[aeiou]|ok&'
函数和视图:http://www.cnblogs.com/chiangchou/p/mysql-4.html
数据库的优化:http://www.cnblogs.com/chiangchou/p/mysql-5.html
数据库查询优化:http://www.cnblogs.com/chiangchou/p/mysql-5.html
事务
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
- 1、事务的原子性:一组事务,要么成功;要么撤回。
- 2、稳定性 :有非法数据(外键约束之类),事务撤回。
- 3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
- 4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit 选项 决定什么时候吧事务保存到日志里。
事物控制语句:
BEGIN或START TRANSACTION;显式地开启一个事务;
COMMIT;也可以使用COMMIT WORK,不过二者是等价的。COMMIT会提交事务,并使已对数据库进行的所有修改称为永久性的;
ROLLBACK;有可以使用ROLLBACK WORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;
SAVEPOINT identifier;SAVEPOINT允许在事务中创建一个保存点,一个事务中可以有多个SAVEPOINT;
RELEASE SAVEPOINT identifier;删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常;
ROLLBACK TO identifier;把事务回滚到标记点;
SET TRANSACTION;用来设置事务的隔离级别。InnoDB存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。
MYSQL 事务处理主要有两种方法:
1、用 BEGIN, ROLLBACK, COMMIT来实现
- BEGIN 开始一个事务
- ROLLBACK 事务回滚
- COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:
- SET AUTOCOMMIT=0 禁止自动提交
- SET AUTOCOMMIT=1 开启自动提交
数据库的alter命令
删除表字段:alter table users drop username
添加表字段:alter table users add username varchar(50) not null
alter table users add username varchar(40) first
alter table users add username varchar(50) not null after uid
修改表字段:alter table users modify username char(20)
alter table users change username uname varchar(30)
alter table users modify gender varchar(4) not null default '男‘
修改默认值字段:alter table users alter age set default 10
删除默认值字段:alter table users alter age drop default;
修改表名:alter table user rename to alter user_xp
修改存储引擎:alter table users engine=myisam
删除外键约束:alter table users drop foreign key keyName
修改字段的相对位置:这里name1为想要修改的字段,type1为该字段原来类型,first和after二选一,这应该显而易见,first放在第一位,after放在name2字段后面:alter table tablename modify name1 type1 first | after name2
- MySQL总结
- MySQL 总结
- mysql总结
- MySql总结
- MySQL总结
- mysql 总结
- mysql总结
- Mysql总结
- mysql总结
- Mysql总结
- mysql总结
- Mysql总结
- mysql 总结
- mysql 总结
- mysql总结
- MySQL总结
- mysql总结
- 总结:mysql
- 用Google的gflags优雅的解析命令行参数
- javaWeb常用框架技术总结
- IntelliJ使用指南 —— Intellij IDEA自动编译不用每次make
- QtConcurrent 线程池使用
- js获取日期:昨天今天和明天、后天
- mysql总结
- Greenplum 空间(GIS)数据检索 B-Tree & GiST 索引实践
- 约瑟夫环、内存重叠
- Qt5.9.1+VS2015静态编译
- 【Origin】Origin个性化设置和快捷键
- MyBatis与Spring的结合
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- javaweb三大组件
- getGlobalVisibleRect和getLocalVisibleRect