mysql update语句

【转】MYSQL入门学习之七:MYSQL常用函数

偶尔善良 提交于 2020-03-19 07:48:04
转载地址:http://www.2cto.com/database/201212/175864.html 一、数学函数 www.2cto.com ABS(x) 返回x的绝对值 BIN(x)          返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x)          返回值e(自然对数的底)的x次方 FLOOR(x)         返回小于x的最大整数值 GREATEST(x1,x2,...,xn)  返回集合中最大的值 LEAST(x1,x2,...,xn) 返回集合中最小的值 LN(x) 返回x的自然对数 LOG(x,y)         返回x的以y为底的对数 MOD(x,y) 返回x/y的模(余数) PI()           返回pi的值(圆周率) RAND()          返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 ROUND(x,y)        返回参数x的四舍五入的有y位小数的值 SIGN(x)          返回代表数字x的符号的值 SQRT(x)          返回一个数的平方根 TRUNCATE(x,y) 返回数字x截短为y位小数的结果 示例: mysql> select abs(-1); +---------+

《MySQL必知必会》读书笔记_3

烈酒焚心 提交于 2020-03-19 02:47:11
PS:这次的信息量有点大。 聚集不同值 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003 # 相同的值不会被计算 组合聚集函数 SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg FROM products 创建分组 # 不创建分组的样子 SELECT vend_id FROM products # 创建分组的样子 SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id P84~P96 主键:唯一标识 外键:某个表的主键值,包含在另一个表中的一列,定义了两个表之间的关系。 PS :外键约束,会导致如果删除表 A 中的一行数据,如果表 A 的主键为表 B 的外键的话,并且表 B 中有数据引用外键为删除数据,那么会删除失败。需要先接触约束,删除表 B 中的数据,才能删除表 A 中的数据。 PS :需要学习数据库范式的概念,才能更加了解书中所说的设计方式。 联结是一种机制,用来在一条 SELECT 语句中关联表

MySQL 必知必会学习笔记

痴心易碎 提交于 2020-03-19 02:45:15
SHOW DATABASES; USE LangLibCEE; SHOW TABLES; SHOW COLUMNS FROM customers; DESC customers; SHOW STATUS WHERE Variable_name LIKE '%time'; SHOW CREATE DATABASE httprunner; SHOW CREATE TABLE t; SHOW GRANTS; SHOW ERRORS; SHOW WARNINGS; SELECT prod_name FROM products; SELECT prod_id, prod_name, prod_price FROM products; SELECT DISTINCT vend_id FROM products; SELECT prod_name FROM products LIMIT 5; SELECT prod_name FROM products ORDER BY prod_name; SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price, prod_name; SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price

MySQL 中的数据类型介绍

无人久伴 提交于 2020-03-19 00:50:12
1、MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 2、数值类型(12) 2.1、整数类型(6) 一张图就能解释清楚了: INTEGER同INT。 2.2、定点数(2) DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。 使用方式如下: salary DECIMAL ( 5 , 2 ) 下面的介绍将基于上面这个例子。 我们看到其中有两个参数,即DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数,上例中的取值范围为-999.99~999.99。 如果存储时,整数部分超出了范围(如上面的例子中,添加数值为1000.01),MySql就会报错,不允许存这样的值。 如果存储时,小数点部分若超出范围,就分以下情况: 若四舍五入后,整数部分没有超出范围,则只警告,但能成功操作并四舍五入删除多余的小数位后保存。如999.994实际被保存为999.99。 若四舍五入后,整数部分超出范围,则MySql报错,并拒绝处理。如999.995和-999.995都会报错。 M的默认取值为10,D默认取值为0。如果创建表时,某字段定义为decimal类型不带任何参数,等同于decimal(10,0)。带一个参数时

mysql 查询正在执行的事务以及等待锁 常用的sql语句

青春壹個敷衍的年華 提交于 2020-03-19 00:20:08
使用navicat测试学习: 首先使用set autocommit = 0;(取消自动提交,则当执行语句commit或者rollback执行提交事务或者回滚) 在打开一个执行update 查询 正在执行的事务: SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 从上图看出对应的mysql 线程:一个94362 (第二个正在等待锁)另一个是93847(第一个update 正在执行 没有提交事务) 可以使用mysql命令:kill 线程id 杀掉线程 期间如果并未杀掉持有锁的线程:则第二个update语句提示等待锁超时 查询mysql数据库中还可以使用: 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 查询mysql数据库中存在的进程 [sql] view plain copy select * from information_schema.`PROCESSLIST`(show processlist;) 概念: mysql中database、instance、session。

mysql之零碎知识

泪湿孤枕 提交于 2020-03-18 23:33:53
一 视图  什么是视图:视图就是一张虚拟表。方便查看。  创建视图:create view 起名 as sql语句 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | | 3 | 刘海燕老师 | | 4 | 朱云海老师 | | 5 | 李杰老师 | +-----+-----------------+ 5 rows in set (0.00 sec) #查询李平老师教授的课程名 mysql> select cname from course where teacher_id = (select tid from

mysql day02

不羁岁月 提交于 2020-03-18 23:10:02
Day01回顾 1、MySQL的特点 1、关系型数据库 2、跨平台 3、支持多种编程语言 2、启动连接 sudo /etc/init.d/mysql start | stop | restart | reload mysql -hIP地址 -u用户名 -p MySQL中数据是以文件的形式存储在数据库目录/var/lib/mysql 3、基本SQL命令 1、库管理 1、show databases; 2、create database [if not exists] 库名 character set utf8; 3、select database(); 4、use 库名; 5、show tables; 6、drop database 库名; 2、表管理 1、create table [if not exists] 表名( 字段名 数据类型, ... ); 2、show create table 表名; 3、desc 表名; 4、drop table 表1,表2; 3、表记录的管理 1、insert into 表名(字段1,...) values(值1),(值2); 2、select 字段1,字段2... from 表名 [where 条件]; 4、更改默认字符集 1、sudo -i 2、cd /etc/mysql/mysql.conf.d/ 3、cp mysqld.cnf

认识mysql(2)

99封情书 提交于 2020-03-18 23:09:16
1、表字段的操作 1、语法 :alter table 表名 执行动作; 2、添加字段(add) alter table 表名 add 字段名 数据类型; alter table 表名 add 字段名 数据类型 first; alter table 表名 add 字段名 数据类型 after 字段名; 3、删除字段(drop) alter table 表名 drop 字段名; 4、修改数据类型(modify) alter table 表名 modify 字段名 新数据类型; 5、表重命名(rename) alter table 表名 rename 新表名; 6、练习 1、创建库 studb2 2、在库中创建表 t1 ,字段有3个:name、age、phnumber use studb2; create table t1( name char(20), age tinyint unsigned, phnumber char(11) ); 3、查看表结构 desc t1; 4、在表中第一列添加一个 id 字段 alter table t1 add id int first; 5、把 phnumber 的数据类型改为 bigint alter table t1 modify phnumber bigint; 6、在表中最后一列添加一个字段 address alter table t1

mysql复习相关

纵然是瞬间 提交于 2020-03-18 18:50:28
Mysql相关 mysql增删改查 我们需要修改数据表名或者修改数据表字段时,就需要使用到Mysql Alter命令 删除,添加或修改表字段 alter table student drop register_date; #从student表删除register_date alter table student add phone int(11) not null; #添加phone字段 修改字段类型及名称 如果需要修改字段类型及名称,你可以在alter命令中使用Modify或change 例如:把字段c的类型从char(1)改为char(10),可以执行以下命令: alter table testalter_tbl modigy c char(10); 使用change子句,语法有很大的不同。在change关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。 alter table testalter_tbl change i j BIGINT; alter table testalter_tbl change j j int; alter table对null值和默认值的影响 当你修改字段时,你可以指定是否包含只或者是否设置默认值 以下实例,指定字段j为not null且默认值为100 alter table testalter_tbl modify j

mysql事务隔离级别测试

你。 提交于 2020-03-18 18:50:13
隔离性 mysql提供了4种不同的隔离级别以支持多版本并发控制(MVCC) 较低级别的隔离通常可以执行更高的并发,系统的开销也更低 read uncommited(未提交读) read commited(提交读) repeatable read(可重复读) serializable(可串行化) 默认repeatable-read 建议最好不要修改默认的隔离级别,修改隔离级别会对mysql复制产生影响 isolation-table.sql DROP TABLE IF EXISTS transaction_test; CREATE TABLE transaction_test( id INT UNSIGNED NOT NULL AUTO_INCREMENT, val VARCHAR(20) NOT NULL, created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET latin1; #初始化数据 insert into transaction_test(val) values ('a'),('b'),('c'); 1.REPEATABLE-READ(可重复读) 解决了脏读问题.该级别保证了在同一事物中多次读取同样的记录结果是一样的