mysql简单使用增删改查
修改配置文件 在my.in配置文件
找到client 指的是mysql客户端 port3306
default -charachter-set=utf-8
default -charachter-set=utf8 basedir 和datadir 存储路劲 下面有有个服务器的字符编码 修改为utf8不是utf-8 default -charachter-set=utf8 数据类型: 整形:
tinyint 1个字节 有符号和无法存储范围 分别为 -128~128 ,0~255
smallint 2个字节
mediumint 3个字节
int 4个字节
bigint 8个字节 浮点型:
float
double 时间存储:
year:
time:
date:
datetime:
timestamp: 定长类型: 1个字节8位 最大 8个11111111 =255 ,
char(5): abc三个字符,后面会补充两个空格
vchar(5) abc 值存三个字符 0~65535
tinytext
text 1~2(16)
mediumtext 1~2(24)
lingtext 1~2(32)
enum
set 最多存储64个字符 数据表的操作
float (8,2)表示总格有8位,小数点后有两位,小数点前有6位
create table tb_name(username varchar(20), age tinyint unsgined, salary float(8,2)); 查询数据表是否存在
show tables; show tables from mysql; 查看mysql中所有列表 查询表结构:
show columns from username; 写入记录:
insert intousername(username) values(‘zhangsan’); 查找记录是否存在:
select * from username; 空值与非空:
数据唯一性: auto_increment 自动编号必须是主键
create tb_user(sid smallint not null auto_crement primary key, username vchar(20)); 前面介绍了 主键约束,还有一种 默认约束:
create tb_username(sid smallint not null auto_increment primary key,name vchar(20),age enum('20','30') default '30'); 约束: 保证数据的完整性和一致性:
约束有分为表约束,列约束
约束类型 非空 主键 唯一 默认 外键约束 mysql创建外键约束 :
条件 父表和子类 必须有相同引擎 InnoDB 不能用临时表 字符必须相同,长度可以不同 外键列和参照列必须创建索引 ,如果外键没有不存在,mysql会自动创建索引 编辑数据表的默认存储引擎
mysql、配置文件 default-storage-engine=INNODB 创建表
字表 pid smallint, foreign key(pid) reference '父表' (id) 外键越苏的参照操作:
cascade: 附表删除或者更新且自动删除或者更新的时候 ,子表也跟着改变 set null: 父表更改,子表设置为空 restrict:拒绝对父表的删除或者更新操作 no action:标准sql的关键字,在mysql与restrict相同 例子演示子表的设置权限: create user2(sid smallint not null primary key auto_increment,username vchar(20), pid smallint unsgined, foreign key (pid) preference db_username(id) on delete cascade); 查看数据表命令:
show create table user1; 表级约束列约束 添加单列 alter table user1 add age tinyint unsigned not null default 10; alter table user1 add age2 tinyint unsigned not null default 10 after age; 新添加的列在age列之后,first之前插入 添加多列 单列的不需要添加括号 查看表的结构: show columns from user1; 删除字段: alter table user1 drop ags;
删除多个字段 alter table user1 drop age1,drop age1; 也可以新增一列 add就添加一列 修改表添加主键约束
alter table user1 add constraint PK_user1_id primary key (id); alter table user1 add constraint PK_user1_id primary key (id); 添加唯一约束:
alter table user1 add unique (id); show create table user1; 查看表 添加外键约束:
alter table user1 add foreign key (id) reference db_username(id); 修改字段
alter table user1 age set defalue 15; 删除约束:
alter table user1 drop primary key;
删除唯一约束: 查看表结构:
show indexes from user1\g 删除外键约束; 插入默认值
insert into user1 values('zhangsan',default); 插入多条数据:
insert into user1 values('zhangsan',default) ,('null',29); 插入数据set演示
insert user1 set username='ben', password ='123'; 插入数据select的演示 更新数据 有单表和多表
update user1 set age=5 uodate user1 set age=age-sid,sex=0 更行所有偶数的行数据
uodate user1 set age=age-sid,sex=0 where sid%2=0; 查询语句:
group by 分组
select * from group by 1 1代表着字段的位置 一般直接指定名称 having 一部分做分组 相当于where ,
需要保证分组的条件是聚合函数 max min avg count 或者hvaing的条件字段必须在select 字段中 例子:
错误演示:
select sname from tb_user group by 1 having age >3; age 不咋select 查询字段中,所以是错误
正确演示:
select sname,age from tb_user group by 1 having age >3; 这个时候后是包含了age 所以正确 或者使用函数 select sname from tb_user group by 1 having count(id)>=2; 这个也是正确的 排序查询:
select * from user order by id desc; select * from user order by id,age desc; limit 的使用 select * from user order by id desc limit 2,2; 第一个2代表着第三条数据开始查询(0,1,2), 第二个2代表 着显示两条数据 插入数据从另一张表中获取信息 insert user2(username) select username from user1 where age>=30; 设置客户端的编码 set name gbk; show columns use1\g; 查询所有字段详情信息网格 子查询 distinct group by order by limit 函数等 都可以在子查询出现 子查询的外查询可以是增删该查 avg 和round select round(avg(good_price),2) from user1; select sname, sage from user1 where good_price>=(select round(avg(good_price),2) from user1); 子查询 any some all修饰 all 需要符合两个 any 和some 值需要符合一个 比较运算符子查询 not in 子查询 any =in !=all 例子:
创建表create table if not exists tb_user (cate_id smallint unsigned not null primary key auto_increment, cage_name varchar(20) not null); select catefrom user1 group by cate; 查询分类 将查询到分类插入到新表数据上去 desc tb_user;查询表的结构 多表更新:
update tb_1 inner join tb_2 on tb_1name =tb_2name set tb_1name=tb_2sid; 修改多个字段的名称和字符类型 使用change
alter table tb_1 change sname sname_id smallint not null, classname classname_id smallint not null; 外链接有 区分为左右链接
修改字段类型
alter table tb_sql modify column sname varchar(50);
存储过程
优点:
增强sql语句的功能和灵活性
实现较快的执行速度
减少网络的流量 存储过程的演示:
简单基础演示
例子: 增删改查
create procedure spl1() select version();
create procedure spl2() delect from tb1 where sid>5;
create procedure spl3() select * from tb1 ;
create procedure spl4() update tb1 set name=‘lisi’ where sid>4; call spl();
in方式的存储过程
delimiter //
create procedure removeUser(IN pid UNSIGNED)
BEGIN
DELETE FROM user where id=pid;
END
// DELIMITER call removeUser(3); // 指定列数被删除 删除存储过程
drop procedure removeUser;
运算符和函数 字符运算符
数值运算符和函数
比较运算符和函数
日期时间函数
信息函数
聚合函数
加密函数 format函数使用 format(1256.72)
lower("MYSQL"); mysql
upper(“mysql”); MYSQL
right("mysql",2); 执行结果sql
length("mysql"); 长度 ceil() 进一取整
div 整数除法
floor 舍一取整
power 幂函数 round() 四舍五入 truncate() 数字截取 比较运算符 select 35 not between 1 and 22 select 10 in(5,10,15,20); select "" is null;
select null is null;
select 0 is null; select now();
curdate(); curtime(); date_add(); datediff(); date_format(); mysql> select date_add('2014-3-12',interval -365 day); 增加年份
mysql> select date_add('2014-3-12',interval 10 year); 相差天数:
mysql> select date_add('2014-3-12',interval 10 year); 信息函数:
查询链接id
mysql> select date_add('2014-3-12',interval 10 year);
查询当前连接数据库:
mysql> select database(); 插入多条数据 values 后添加,
mysql> insert into tb_sqldemo(sname,spassword) values('haha1','a123456'),('xix
','''a123456'); 查询当前用户
mysql> select user(); 聚合函数
avg() count() max() min() sum() 加密:
信息再要算法 md5 密码算法 password() 设置字符编码:
mysql> set name gbk; 日期格式化
mysql> select date_format(now(),'%Y年%m月%d日 %H时%i分%s秒'); 自定义函数:
mysql> create function f1() returns varchar(30)
-> return now(); 调用自定义函数
mysql> select f1(); 带参数的函数
mysql> create function f2(num1 smallint unsigned,num2 smallint unsigned)
-> returns float(10,2) unsigned
-> return (num1+num2)/2; 调用
mysql> select f2(10,20); delimiter // 表示结尾;被 //替代 例子:
mysql> delimiter //
mysql> select version();
-> // 原本
mysql> select version(); 符合函数
mysql> delimiter //
mysql> create function adduser3(username varchar(20))
returns int unsigned
begin
insert tb_sqldemo(sname) values(username);
return last_insert_id();
end;
// select adduser3('zhangsan1'); 存储过程和函数的区别
存储过程实现功能要复杂一些,函数比较针对性
存储过程可以返回多个值,二函数只有一个返回值
存储过程一般独立赖执行,而函数可以作为其他sql语句的组成部分来出现
mysql简单使用增删改查的更多相关文章
- MySql简单的增删改查语句 js
最近在项目中需要连接数据库,做增删改查的功能,sql语句整理做了以下记录(基于NodeJs,注:data为你的真实数据): (一)新增插入表中数据: sql: 'insert into work(表名 ...
- mysql 简单的增删改查语句
增加记录: 注:null关键字与auto_increment限制条件相结合,可以为字段自动赋值:字段必须全,且一一对应:字符型用单引号: mysql> insert into test valu ...
- mysql简单的增删改查
增加 MYSQL>insert into class (stu,name,age) values (1,'zhangsan',23);(回车) 另外,如果输入的是中文的话,在windows下可能 ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- 通过JDBC进行简单的增删改查(以MySQL为例) 目录
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- Java通过JDBC进行简单的增删改查(以MySQL为例)
Java通过JDBC进行简单的增删改查(以MySQL为例) 目录: 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JD ...
- 使用 NodeJS+Express+MySQL 实现简单的增删改查
关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
- python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
随机推荐
- HDU 2841 Visible Trees(莫比乌斯反演)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2841 题意:给n*m的矩阵(从(1,1)开始编号)格子,每个格子有一棵树,人站在(0,0)的位置,求可 ...
- servlet操作数据库
工具:myeclipse 数据库工具:mysql java ee操作数据库,首先要导入数据库驱动文件,我用的是mysql 刚开始,很多人代码正确但是就是连接不上,原因就是忘了驱动文件的导入. 我的驱动 ...
- ThinkPHP第十四天(显示TRACE界面配置,关联模型详解定义)
1.显示TRACE界面,首选需要在显示模版界面,$this->display(),然后需要在配置文件中配置 SHOW_PAGE_TRACE => true 2.关联模型使用 主表以user ...
- ThinkPHP第十三天(CONF_PATH、APP_PATH,UEditor用法)
1.CONF_PATH 项目配置文件目录地址,APP_PATH 项目地址 2.ThinkPHP中更新数据的连接操作位save(),更新一个字段可以用setField(name,value)方法. 3. ...
- jQuery validate和form插件配套使用
参考 官网http://jqueryvalidation.org/documentation/ 博客http://www.cnblogs.com/buzzlight/archive/2010/06/3 ...
- 去确认CP210x UART Bridge的USB的VID和PID
[背景] 之前买的USB口的HART猫: [记录]为USB接口的HART猫ExSaf ESH232U安装对应的USB转RS232驱动 其中内部是USB转RS232. 然后打算去看看之前的自己此处的某个 ...
- File类常用方法
File类是IO中常用的类 先介绍几个常用的方法: public boolean canRead(),public boolean canWrite() 测试当前文件是否可读可写,若是则返回true ...
- DOC下编译和运行带有包的java类文件
前言: 带有包名的java类在DOC下编译可以成功,但是运行出错 错误: 找不到或无法加载主类 com.soanl.socket.MyServer D盘temp文件下有个Hello.java文件,包 ...
- HDU1325 &&poj1308 基础并查集
和上一道小希的迷宫差点儿相同,可是在HDU上提交一直WA,POJ过了 HDU的数据太强了吧,强的我感觉数据有问题 题意:输入若干对点,推断是否是一颗树,转化过来也就是是否存在环 点数-边数=1,还要推 ...
- 在Tableau中自定义版块地图 (Polygon)
在Tableau的地图报表中有一个‘Filed Map’的类型,可以根据版块来显示数据. 但实际应用中Tableau固有的版块划分可能不是我们想要的,下面介绍如何自定义版块并且用作数据分析. 自定义版 ...