mysql 数据库使用
1. 常用命令
2. 创建表
create table test
(
test_id int, test_price decimal
);
或者
create table test2 as select * from test
修改表
alter table test2 //添加
add
(
test_a varchar(255) defaule 'aaa',
test_b varchar(255),
);
alter table test2 //修改
modify test_a varchar(255) default 'bbb';
alter table test2 drop test_a; //删除
alter table test2 rename to test3; //重命名
alter table test2 change test_b bb int; //修改列名test_b --> bb 类型修改为int
drop table test2; //删除表test2
truncate test2; //删除表里全部数据,但是保留结构。
3. 约束
非空约束:
create table test
(
test_id int not null, //不能为空
test_age int null //默认为空
);
unique唯一性约束,唯一性是指这列的值在这个表中要唯一。
create table test
(
test_id int unique, //直接加后面修饰
test_name int,
test_age int,
unique (test_name), //unique()
constraint test_uk unique(test_age) //[constraint 约束名] 约束定义
);
alter table test add unique(test_id); //修改约束性
alter table test modify test_name int unique;
alter table test drop index test_uk; //删除约束性 drop index + 约束名
Primary Key 主键约束 == 非空约束 + 唯一约束, 每个表中只有一个主键,但这个主键可以由多个数列组成。
主键:指的是,唯一标识这张表的字段,例如,书号是图书表的主键
外间:指的是 可以跟其他表建立关系的字段,例如 图书表的书名 可以在 借阅信息表中出现,这样图书表和借阅信息表之间建立了关系。
create table test //这仅是例子,正常一个table里只会有一个主键
(
test_id int primary key, //可以在primary key 前加 auto_increment 增加自增长功能。
test_age int,
test_name varchar(255),
primary key(test_age),
constraint test_pk primary key(test_name) // 可建组合约束
);
修改主键约束和唯一性约束一样,只需要改为 primary key 即可。
Foreign Key外键约束,构建一个表的两个字段 或 两个表的两个字段之间的参照关系。
MySQL支持使用列级约束但是不会生效,只是为了保持兼容性,需要用表级约束语法。
4. 索引
//create index index_name on table_name (column ....);
create index student_index on student_table2 (student_id); //建引索
drop index student_index on student_table2; //删引索
5. 视图
create or replace view view_test
as select teacher_name, teacher_id from teacher_table
with check option; //不允许修改视图数据
drop view view_test; //删除视图
6. DML 操作数据表的值
insert 插入
insert into teacher_table(teacher_name) values('kevin'); //插入一个
insert into teacher_table values(null, 'xiang'); //插入多个值
insert into test2(age) select test_id from test3; //用从句一次插入多个值
update 更新
update test2 set name='kevin';
update test2 set name='xiang' where age>=18; //接where从句,相当于if,满足条件才update
delete from 删除表里的数据
delete from test2; //删除所有记录
delete from test2 where age>18; //按条件删除
7. select语句和SQL函数
select concat(teacher_name, 'XX') from teacher_table; //concat 字符连接
select teacher_id as My_ID from teacher_table; //teacher_id as My_ID 别名
select distinct * from test3; //不显示重复行
使用where语句时支持的比较符。
select * from test3 where 21 between test_id and test_age; //选出test_id小于21和test_age大于21的列
select * from test3 where test_id in(12,18);
select * from test3 where 20 in(test_id,test_age); //选出test_id test_age == 20的列
select * from test3 where name like 'k%'; //like字符匹配, 通配符(_) 一个字符, (%)任意字符
//转义符为'\',反斜杠的转义 必须用关键字 escape 显示转义
SQL还提供 and or not 三个逻辑运算符。
select * from test3 where (test_id=12) and name like 'kevin' ;
order by 排序
select * from test3 order by test_id; //按test_id列的升序排列
select * from test3 order by test_id desc; //desc 降序排列
8. 常用函数
Case 控制流语句
select case name
when 'kevin' then 1
when 'xiang' then 2
else 'no'
end
from test3;
常用组函数
group by 分组 详解:http://blog.csdn.net/qianquanyiyan/article/details/8014406
select test_id,max(test_age) from test3 group by test_id;
mysql 数据库使用的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- CentOS下mysql数据库常用命令总结
mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- mysql数据库主从同步
环境: Mater: CentOS7.1 5.5.52-MariaDB 192.168.108.133 Slave: CentOS7.1 5.5.52-MariaDB 192.168. ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- mysql数据库开发常见问题及优化
mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...
- 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库
昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...
随机推荐
- js中有特殊字符的编码格式
在get和post方法中,如果传入的参数值有特殊字符,如:“&”,在get中的url需要拼接,可以使用encodeURICompontent来编码来转化 回调就是在上面传递实际参数,传递给aj ...
- poj 2762 Going from u to v or from v to u?(强连通、缩点、拓扑)
题意:(理解错了)在一个洞穴中有多个room,要求任意选两个room:u.v,都能保证u.v之间有通路,注意洞穴中的路是有向边.. 分析:强连通子图中的点必然两两之间可以互通,两个强连通子图之间有通路 ...
- 尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题。现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示同一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示时为三位数1、7、3。按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11。
include "stdafx.h" #include<iostream> #include<vector> #include <algorithm& ...
- 安装SQLserver 2014(For AlwaysOn)
SQLserver 2014 AlwaysOn在SQLserver 2012的基础之上,进行了非常大程度的添加.如能够通过"加入 Azure 副本向导"简化了用于 AlwaysOn ...
- 【JMeter4.0】之 “jdk1.8、JMeter4.0” 安装与配置以及JMeter永久汉化和更改界面背景、并附加附录:个人学习总结
目录: 一.首先,需要安装.配置jdk 二.其次,安装.配置JMeter 三.JMeter汉化以及更改界面背景 四.附录:个人学习总结 一.首先,需要安装.配置jdk 返回目录 1.到官网下载1. ...
- 让子元素在父元素中水平居中align-items
做案例中,我们会发现让子元素在父元素中垂直居中,要设置margin和padding等,各种设置才能垂直居中 现在可以使用CSS3中的align-items实现 align-items 定义子元素在父元 ...
- Python3 多线程 学习 threading
#-*- coding:utf-8 --*- #多线程测试 import time import datetime import threading def worker(): print(" ...
- 线段树专题—HDU1698 Just a Hook
题意:t组数据,给一个n.m表示n长度的钩和m次操作.初始钩子的每单位长度的价值为1,接下来输入 x,y,k 的操作把钩子[x,y]区间的价值替换为k,求m次操作后钩子的价值为多少 分析:成段替换.最 ...
- nignx部署django
操作系统:Linux wiki 2.6.32-131.0.15.el6.x86_64 nginx版本: nginx-1.5.7 uwsgi版本:uwsgi-2.0.8 大致流程参考:http://ww ...
- 关于PHP反射
本文实例讲述了PHP反射机制原理与用法.分享给大家供大家参考,具体如下: 反射 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射. 反射,直观理解就是根据到达地找到出发地和来源.比如,一 ...