Mysql数据库 SQL语句 笔记
- 格式:docx
- 大小:1.80 MB
- 文档页数:10
mysql备份数据库的sql语句MySQL是一款功能非常强大的关系型数据库管理系统,其中用于备份数据库的 SQL句不仅简单安全,而且也很实用。
以下是 MySQL份数据库的 SQL句介绍。
一、 mysqldump命令mysqldump命令是MySQL中一款功能强大的数据库备份工具,它可以用于备份整个数据库表以及某些表的部分数据。
其语法格式如下: mysqldump [options] database[tables]其中 options可选参数,database要备份的数据库名称,tables 要备份的数据库表名称,tables以是多个表,这时需要用空格分开。
示例:备份数据库my_db:mysqldump -u root -p my_db > my_db.sql备份数据库my_db的table1表:mysqldump -u root -p my_db table1 > table1.sql二、select into outfile命令select into outfile命令是用于将数据表中的数据备份到文件中的SQL语句,语法格式如下:select * into outfile 文件名 from据表名;示例:备份数据表table1:select * into outfile table1.txt from table1;三、backup table句backup table句是MySQL数据库中的备份语句,可以用于备份数据库表的全部数据。
语法格式如下:backup table据表名 to 文件名示例:备份数据表table1:backup table table1 to table1_bak.txt四、对比备份通过上述三种SQL语句可以完成数据库的备份,但是在实际应用中,为了确保备份数据的完整性,应该使用对比备份的方式进行备份。
对比备份实际上是将数据库中的数据分为两个部分,然后比较这两个部分的不同之处,从而获得备份数据。
mysql跨ip数据库连接查询sql语句摘要:I.引言- 介绍MySQL 数据库- 说明跨IP 数据库连接查询的背景和意义II.MySQL 跨IP 数据库连接查询的方法- 方法一:使用mysqladmin 工具- 方法二:修改MySQL 配置文件- 方法三:使用SSH 隧道III.MySQL 跨IP 数据库连接查询的SQL 语句- 查询当前数据库连接的IP 地址- 查询指定IP 地址的连接状态- 断开指定IP 地址的连接- 连接到指定IP 地址的数据库IV.总结- 回顾MySQL 跨IP 数据库连接查询的方法和SQL 语句- 强调安全性和注意事项正文:MySQL 是一款广泛应用于各类项目的开源关系型数据库管理系统。
在实际应用中,有时需要对位于不同IP 地址的MySQL 数据库进行连接查询。
本文将介绍MySQL 跨IP 数据库连接查询的方法和SQL 语句。
首先,我们需要知道如何实现MySQL 跨IP 数据库连接查询。
通常有以下三种方法:1.使用mysqladmin 工具mysqladmin 是一个用于管理MySQL 数据库的命令行工具。
通过输入以下命令,可以查询当前数据库连接的IP 地址:```mysqladmin -u username -p -P -h hostname -i dbname -s -N```其中,`-u`表示用户名,`-p`表示密码,`-P`表示以非交互方式运行,`-h`表示主机名,`-i`表示数据库名,`-s`表示显示所有结果,`-N`表示不显示表名。
2.修改MySQL 配置文件如果MySQL 允许从指定IP 地址连接,可以在MySQL 配置文件(如`f`或`my.ini`)中添加以下内容:```[mysqld]bind-address = IP_ADDRESS```其中,`IP_ADDRESS`表示允许连接的IP 地址。
需要注意的是,这种方法可能会降低MySQL 的安全性,因为它允许任何IP 地址连接到数据库。
mysql动态sql语句基本语法MySQL是一种流行的关系型数据库管理系统,它使用SQL语言来操作数据库。
动态SQL语句是指在运行时根据不同条件生成不同的SQL语句,实现灵活的数据库操作。
下面是MySQL动态SQL语句的基本语法:1. SELECT语句:用于从数据库中检索数据。
示例:SELECT * FROM 表名 WHERE 条件;2. INSERT语句:用于向数据库中插入新的数据。
示例:INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);3. UPDATE语句:用于更新数据库中的数据。
示例:UPDATE 表名 SET 字段1=新值1, 字段2=新值2 WHERE 条件;4. DELETE语句:用于从数据库中删除数据。
示例:DELETE FROM 表名 WHERE 条件;5. IF语句:用于在SQL语句中添加条件判断。
示例:IF(条件, 结果1, 结果2);6. CASE语句:用于在SQL语句中实现多条件判断。
示例:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN结果2 ELSE 结果3 END;7. WHILE语句:用于在SQL语句中实现循环操作。
示例:WHILE 条件 DO 语句 END WHILE;8. FOR语句:用于在SQL语句中实现循环操作。
示例:FOR 变量名 IN 起始值..结束值 DO 语句 END FOR;9. DECLARE语句:用于在SQL语句中声明变量。
示例:DECLARE 变量名数据类型 DEFAULT 默认值;10. PREPARE语句:用于在SQL语句中执行动态SQL。
示例:PREPARE stmt FROM 'SELECT * FROM 表名 WHERE 字段 = ?'; EXECUTE stmt USING 变量;以上是MySQL动态SQL语句的基本语法,可以根据实际需求进行灵活运用。
mysql information_schema常用的sql语句mysql information_schema 是MySQL数据库系统中的一个特殊数据库,它包含了关于整个数据库系统的元数据信息。
通过查询information_schema,我们可以获取有关数据库、表、列、用户权限、存储过程和触发器等各种对象的详细信息。
本文将介绍一些常用的SQL 语句,帮助读者了解如何使用information_schema 数据库来获取所需的元数据信息。
在开始之前,我们需确保拥有SUPER 权限或有SELECT 权限在information_schema 上。
下面是一些常见的SQL查询语句,了解这些示例可为您在实际应用中创建自己的查询提供指导。
1. 查看所有数据库的名称首先,我们可以使用如下语句,获得系统中所有数据库的名称:SELECT DISTINCT TABLE_SCHEMAFROM information_schema.TABLES;这里,我们从information_schema.TABLES 表中选择所有不同的TABLE_SCHEMA 列的值。
TABLE_SCHEMA 代表数据库的名称。
通过这个查询,我们可以获取系统中所有数据库的名称列表。
2. 查看某个数据库的所有表名若想获取某个特定数据库中的表名,可以使用以下语句:SELECT TABLE_NAMEFROM information_schema.TABLESWHERE TABLE_SCHEMA = 'your_database_name';在这里,将'your_database_name' 替换为您想查找表名的数据库名称。
执行后,您将获取到该数据库中的所有表的列表。
3. 查看特定表的所有列名要了解某个表的详细信息,包括其所有列的名称和属性等,可以使用以下语句:SELECT COLUMN_NAMEFROM information_schema.COLUMNSWHERE TABLE_SCHEMA = 'your_database_name'AND TABLE_NAME = 'your_table_name';将'your_database_name' 替换为表所在的数据库名称,'your_table_name' 替换为您要查询的表名。
SQL基础知识要点笔记归纳总结01.01_SQL基础(SQL的使用)(掌握)∙A:数据库的开启与关闭o net start mysql▪启动数据库o net stop mysql▪关闭数据库∙B:数据库的登录与退出o登录数据库▪mysql -u用户名-p密码▪例子:mysql -uroot -proot▪mysql -h数据库服务器器地址-u⽤用户名-p密码▪例子:mysql -h127.0.0.1 -uroot -proot▪mysql --host=数据库服务器地址--port=端口号-u用户名-p密码▪mysql --host=127.0.0.1 --port=3306 -uroot -prooto退出数据库▪quit;▪exit;o使用数据库▪use 数据库名;C:数据库备份与还原o备份▪mysqldump -u⽤户名-p密码数据库> 文件的路径(指定文件路径)▪需要自己指定文件,mysql不会自己生成备份文件o还原▪source 导入文件的路径.▪还原的时候需要先登录MySQL,并选中对应的数据库.∙D:用户密码的修改o修改管理员密码o▪需要在未登录mysql的情况下操作.o修改普通⽤户密码▪set password for '⽤户名'@'主机名' = password('新密码');▪需要在登陆MySQL的情况下操作.∙E:数据库语句分类o DDL:数据定义语言▪Data Define Language▪用来创建,删除,修改数据库与表结构▪关键字:create,drop,altero DML:数据操作语言▪Data Mainipulation language▪用来进行更新,插入,删除数据操作▪关键字:insert,update,,deleteo DQL:数据查询语言▪Data Query language▪用来进行数据的查询▪关键字:select,showo DCL:数据控制语言▪Data Control Language▪用来创建或删除用户,分配权限,等操作▪关键字:grant/revoke∙F:mysql的语法与注释o每一条语句必须要有分号结尾o. SQL语句中的关键字不区分⼤⼩写o注释用法▪-- :所有数据库共有的语法,单行注释▪# :MySQL数据库特有,单行注释▪/* 注释内容*/ :多⾏注释01.02_SQL基础(SQL之表的数据类型)(掌握) ∙A:常用的数据类型o int:整型o double:浮点型o varchar字符串型o data:日期类型∙B:整数类型o tinyint:占一个字节o smallint:占两个字节o mediumint:占三个字节o int(integer):占四个字节∙C:小数类型o float:单精度浮点数,占四个字节o double:双精度浮点数,占八个字节o decimal(m,n):定义数的长度,m表示数的长度,n表示小数的位数.∙D:日期类型o time:显示具体时间,没有日期.HH:MM:SSo date:显示具体日期,没有显示时间.YYYY-MM-DDo datetime:显示时间和具体日期.YYYY-MM-DD HH:MM:SS ∙E:文本、二进制类型o CHAR(M):定⻓字符串,M为0~255之间的整数o VARCHAR(M):可变字符串,M为0~65535之间的整数o TINYBLOB:允许⻓度0~255字节∙F:Binary Large Objecto blob: 允许⻓度0~65535字节o mediumblob: 允许⻓度0~167772150字节o longblob: 允许⻓度0~4294967295字节o tinytext: 文本,允许⻓度0~255字节o text: 文本,允许⻓度0~65535字节o mediumtext: 文本,允许⻓度0~167772150字节o longtext: 文本,允许⻓度0~4294967295字节o binary(m): 允许⻓度0~m个字节的定⻓字节字符串o varbinary(m): 允许⻓度0~m个字节的变⻓字节字符串01.03_SQL基础(SQL之DDL语句)(掌握)∙A:基本概述o数据定义语言.o Data Define Language.o用来创建,删除,修改数据库与表结构.o关键字:create,drop,alter.∙B:创建o create database 数据库名;▪创建一个数据库.o create database if not exists 数据库名;▪判断是否存在数据库,如果不存在则创建一个数据库.o create database 数据库名default character set gbk;▪创建一个数据库并指定字符集为gbk.o create table 新表名like 旧表名;▪快速创建一个表结构相同的表.o create table 表名(字段名1 数据类型,字段名2 数据类型,...);▪创建一个表.o create user '⽤户名'@'主机名' identified by '密码';▪创建一个新⽤户.▪密码可以为空,如果为空则该用户可以不需要密码登录服务器 C:修改o alter database 数据库名default character set 字符集;▪修改数据库字符集语句o alter table 表名add 字段名数据类型;▪为指定表列添加字段.o alter table 表名modify 字段名新数据类型;▪修改指定表指定字段的数据类型.o alter table 表名change 旧字段名新字段名数据类型;▪修改指定表的字段名与数据类型.o rename table 旧表名to 新表名;▪修改表名.o alter table 表名default character set 编码名称;▪修改指定表的字符集.C: 删除o drop database 数据库名;▪删除指定数据库.o drop table 表名;▪删除表.o drop table if exists 表名;▪判断表是否存在,存在则删除.o alter table 表名drop foreign key 外键名称;▪删除一个表的外键.o alter table 表名drop 字段名;▪删除一个表的字段名o drop user '⽤户名'@'主机名';▪删除用户01.04_SQL基础(SQL之DQL语句)(掌握) A:基本概述o数据查询语言o Data Query languageo用来进行数据的查询o关键字:select,showB:查看o show databases;▪查看所有数据库.o show create database 数据库名;▪查看指定数据库的定义信息. o select database();▪查看当前正在使用的数据库. o show tables;▪查看当前数据库所有表.o desc 表名;▪查看student表的结构.o show create table 表名;▪查看指定表的创建表sql语句.o show grants for '⽤户名'@'主机名';▪查看指定用户的所有权限.D:查询表o select distinct 字段名1,字段名2,... from student;▪查询指定列并且结果不出现重复数据.o select * from 表名;▪查询指定表所有数据o select 字段名1,字段名2,... from 表名;▪查询指定表指定列的数据o select 字段名+ 固定值from 表名;▪某列数据与固定值运算,返回单列多行数据.▪参与运算的必须是数值类型.o select 列名1 + 列名2 from 表名;▪某列数据和其他列数据参与运算.▪参与运算的必须是数值类型.01.05_SQL基础(SQL之DML语句)(掌握) ∙A:基本概述o数据操作语言o Data Mainipulation languageo用来进行更新,插入,删除数据操作o关键字:insert,update,delete∙B:插入记录o insert into 表名values(值1,值2,....);▪为指定表添加一组数据o insert into 表名(字段名1,字段名2,..) values(值1,值2,....);▪为指定表的指定字段名添加一组数据.▪没有添加数据的字段会使用null.C:删除记录o delete from 表名;▪删除表中的所有记录.o delete from 表名where ...;▪删除满足条件的表记录o truncate 表名;▪删除表中的所有记录.▪与delete区别▪delete删除所有数据:一⾏一⾏删除,不影响表结构.▪先删除(drop)整张表,然后再创建一张表结构相同的表.∙D:更新记录o update 表名set 字段名= 值;▪更新所有记录的数据.o update 表名set 字段名= 值where ...;▪更新满⾜条件的记录数据.01.06_SQL基础(SQL之DCL语句)(掌握)∙A:基本概述o数据控制语言o Data Control Languageo用来创建或删除用户,分配权限,等操作o关键字:grant/revoke∙B:授权o grant 权限1, 权限2... on 数据库名.表名to '⽤户名'@'主机名';▪分配授权给用户▪权限有:如SELECT, INSERT,UPDATE 等▪用户刚创建时,没有权限,需要给用户授权.o grant all on . to '⽤户名'@'主机名';▪分配所有权限给用户.∙C:撤销o revoke 权限1, 权限2... on 数据库.表名from '⽤户名'@'主机名';▪撤销用户对某个数据库的操作权限.01.07_SQL基础(SQL之约束关键字)(掌握)∙A:逻辑运算符o and(&&):多个条件同时满足o or(||):多个条件满足其中一个o not(!):不满足o between ... and ... : 在什么范围之间∙B:模糊查询:likeo like '通配符字符串'▪显示满足通配字符串的数据就会显示出来▪%: 可以匹配任意(0到n)个字符▪_: 可以匹配任意一个字符∙C:排序o order by 字段名[ASC|DESC];o ASC: 升序默认值o DESC: 降序o组合排序:是先按第一个字段进⾏排序,如果第一个字段相同,就按第二个字段进⾏排序▪order by 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];∙D:聚合函数o忽略null值的数据o例子:select 聚合函数(age) from 表名o count(列名):统计记录数o sum(列名):求指定列数据的和,列必须是数值类型o max(列名):求指定类数据的最⼤值o min(列名):求指定类数据的最⼩值o avg(列名):求指定类数据的最平均值E:分组与限制o group by 分组字段[having 条件];▪分组后聚合函数操作的不再是行数据,而是组数据▪having语句后使⽤的字段名必须是出现在select语句中▪having与where的区别:▪where语句的条件是对⾏数据进行过滤,where语句后⾯不能使⽤聚合函数的▪having语句的条件是对组数据进⾏过滤,having语句后⾯是可以使⽤聚合函数的▪having必须跟在group by后面o limit 跳过行数,返回的⾏数▪格式: limit 0,5▪如果第一个参数是0可以简写:limit 5F:约束关键字o主键约束:primary key▪主键⾃增:auto_increment▪DELETE 删除表中的数据,但不重置AUTO_INCREMENT的值。
mysql关联查询sql语句MySQL是一种开源的关系型数据库管理系统,它提供了丰富的功能和灵活的查询语言,可以通过关联查询实现多个表之间的数据关联和查询。
下面是一些关联查询的SQL语句示例,用于展示MySQL 的使用方法和查询功能。
1. 查询两个表的所有数据:SELECT * FROM table1, table2;2. 查询两个表的交集数据:SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;3. 查询两个表的并集数据:SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id UNIONSELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;4. 查询两个表的差集数据:SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id WHERE table2.id IS NULL;5. 查询两个表的笛卡尔积数据:SELECT * FROM table1, table2;6. 查询两个表的特定字段数据:SELECT table1.column1, table2.column2 FROM table1, table2 WHERE table1.id = table2.id;7. 查询两个表的多个字段数据:SELECT table1.column1, table1.column2, table2.column3 FROM table1 INNER JOIN table2 ON table1.id = table2.id;8. 查询两个表的计算结果:SELECT table1.column1, table2.column2, table1.column1 + table2.column2 AS sum FROM table1 INNER JOIN table2 ON table1.id = table2.id;9. 查询两个表的条件数据:SELECT * FROM table1, table2 WHERE table1.id = table2.id AND table1.column1 = 'value1' AND table2.column2 = 'value2';10. 查询两个表的排序数据:SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id ORDER BY table1.column1 ASC, table2.column2 DESC;以上是一些基本的关联查询SQL语句示例,可以根据具体的业务需求进行调整和扩展。
SQL语法语句总结(《SQL必知必会》读书笔记)⼀.SQL语句语法ALTER TABLE ALTER TABLE ⽤来更新已存在表的结构。
ALTER TABLE tablename(ADD|DROP column datatype [NULL|NOT NULL][CONSTRAINTS],...);COMMIT COMMIT ⽤来将事物写⼊数据库。
COMMIT[TRANSACTION];CREATE INDEX CREATE INDEX ⽤于在⼀个或多个列上创建索引。
CREATE INDEX indexnameON tableanme (column,...);CREATE PROCEDURE CREATE PROCEDURE ⽤于创建存储过程。
CREATE PROCEDUREASSQL statement;CREATE TABLE CREATE TABLE ⽤于创建新数据库表。
更新已经存在的表的结构,使⽤ALTER TABLE。
CREATE TABLE tablename(column datatype [NULL|NOT NULL][CONSTRAINS],column datatype [NULL|NOT NULL][CONSTRAINS],...);CREATE VIEW CREATTE VIEW ⽤于创建⼀个或多个表上的新视图。
CREATE VIEW viewname ASSELECT columns, ...FROM tables, ...[WHERE ...][GROUP BY ...][HAVING ...];DELETE DELETE 从表中删除⼀⾏多多⾏。
DELETE FROM tablename[WHERE ...];DROP DROP 永久删除数据库对象(表,视图,索引等)。
DROP INDEX|PROCEDURE|TABLE|VIEWindexname|procedurename|tablename|viewname;INSERT INSERT 为表添加⼀⾏。
mysql 实例sql语句MySQL 实例SQL语句MySQL 是一种开源的关系型数据库管理系统,被广泛应用于各种类型的应用程序开发和数据存储。
它支持各种SQL 语句,用于管理和操作数据库中的数据。
在本文中,我们将提供一些常见的MySQL 实例SQL语句示例,一步一步解释它们的用途和操作。
1. 创建数据库创建数据库是开始使用MySQL 数据库的第一步。
你可以使用CREATE DATABASE 语句来创建一个新的数据库。
以下是一个基本的语法示例:CREATE DATABASE database_name;2. 创建表创建表是在数据库中存储数据的关键步骤。
你可以使用CREATE TABLE 语句来创建一个新的表。
以下是一个基本的语法示例:CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,...);例如,我们可以创建一个名为"customers" 的表,其中包含了"id" (整数)、"name" (字符串) 和"email" (字符串) 列:CREATE TABLE customers (id INT,name VARCHAR(50),email VARCHAR(255));3. 插入数据一旦你创建了一个表,你可以使用INSERT INTO 语句将数据插入到该表中。
以下是一个基本的语法示例:INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);例如,我们可以插入一条名为"John Smith" 的客户记录:INSERT INTO customers (id, name, email)VALUES (1, "John Smith", "johnexample");4. 查询数据查询是使用SQL 语句从数据库中检索数据的常见操作。
mysql查询表名的sql语句
在MySQL中,查询表名的方式有很多种,下面将介绍一些常用的方法和技巧。
1.MySQL查询表名的基本SQL语句
要查询一个数据库中的所有表名,可以使用以下SQL语句:
```sql
SHOW TABLES;
```
该语句将返回当前数据库中所有表的名称。
2.使用LIKE关键字进行表名模糊查询
如果需要根据表名的前缀或后缀进行模糊查询,可以使用LIKE关键字。
例如,查询表名中包含“user”的表:
```sql
SHOW TABLES LIKE "user%";
```
3.查询特定数据库的表名
如果需要查询特定数据库的表名,可以在SQL语句中指定数据库名。
例如,查询名为“my_database”的数据库中的所有表:
```sql
USE my_database;
SHOW TABLES;
```
4.查询特定表结构的表名
如果需要查询具有特定表结构的表名,可以使用以下SQL语句进行筛选。
以下语句查询拥有主键的表:
```sql
SHOW TABLES WHERE TABLE_STRUCTURE LIKE "%PRI__%";
```
5.总结与建议
在实际工作中,根据需求灵活使用上述方法查询表名,可以帮助我们更高效地完成任务。
SQL语句查询练习 红色:解释说明 DOS系统登陆mysql mysql -u root -P(记得中间有空格) 一:数据库的增删改查
1.创建一个表 Create from 表名 ( uid_id primary key auto_incremeent, Username varchar(20) not null unique, Pat int not null );
2.普通查询 增:insert into 表名 values(值1,值2) 添加列语法如下: Alter table 表名 添加列名 添加列的类型 ; 如果要添加那个列的后面 sql语法如下: Alter table 表名 添加列的名称 添加列的类型 after (添加那个类的后面本列名)
删:delect from 表名 where id=? 批量删除 delete from 表名 where id(字段名)between 2 and 18; 改:update 表名 set age=25 where username=’’张三’ 查:select*from 表名 查询所有 查询男生总数 sql如下: Select count(*)from 表名 where sex=”男” 按性别进行分组 Select set from 表名 group by sex; 每种性别的人数 Select set count(*)from 表名 group by sex; 性别人数大于2 Select sex from 表名 group by sex having count (sex)>2; Having-------条件表达式
#select max(sal) from emp #select COUNT(empno) from emp; #select ename '姓名',sal'工资' from emp #SELECT ename, sal from emp where sal =(select max(sal) from emp ) #select ename,sal from emp where sal=(select max(sal) from emp ) #select sal from emp where sal>(select sal from emp wehere ename='周杰伦' ) #select ename,grade from emp where grade in (select grade from emp where grade='经理') select ename ,grade from emp where grade in(select grade from emp where grade='经理')
查询user表中每个班级有多少人 select count(*) from user group by classNum; 表示字段中的班级 求总数 SELECT count(字段名|*) FROM 表名; 查找并去重 Select distinct*from 表名
#分组 Group By通常与GROUP_CONCAT(字段名)联合函数使用 语法: Select 字段名1,GROUP_CONCAT(字段名2) FROM 表名 GROUP BY 字段1 #排序(默认升序ASC) 升序语法 Select*from 表名 order by 字段名,(可有多个字段名) 降序排序 Select*from 表名 order by 字段名(可有多个字段名)desc
3.条件查询 And 并且 语法: select*from 表名 where sal>1600 and sal <2000 Or 或者 Select *from 表名 where sal >1500 or sal<2000 In代表在这个取值中只要有一个匹配就符合条件 Select*from 表名 where sal in(2000,3000,2500) Not iN 不在这个取值范围区间内 Select*from 表名 where sal not in(2000,3000,2500) 判断一个字段的数值是否为null 需要用到关键字 is 语法: Select*from 表名 where 字段名 is null 判断一个字段不为null 用到关键字 is not Select*from 表名 where 字段名 is null
4.mysql 函数 FI (圆周率) 语法 FLOOR(X) 取整数部分 语法:select FLOOR(x) from 表名 where id=1 CEILING(x)只 要小数不是0就向个位进以为 语法select CEILING(x) from 表名 where id=1 ROUND(x,y)对有小数的整数的小数进行四舍五入 Select ROUND(sal,1) from emp where id= 1 TRUNCATE(X,Y) 直接将小数部分去掉 Select ROUND(sal,1) from emp where id= 1
5.聚合函数: Max :返回指定列的最大值 Min; 返回指定列的最小值 sum :返回指定列的和 Avg:返回指定列的平均值 Count:返回指定列中非NULL值/并且将个数返回回来 解释:case when num =1 then num end case(筛选) when(当) num=1(时的数据) then(然后) num(想要获取的字段) end(结束) 示例:select count(case when sex='男' then sex end) as '男' , count(case when sex='女' then sex end) as '女' FROM emp 计算公司工资最高的工资 Select max(sal) from 表名 系统信息函数:
Select version(); Select connection(); Select schema(); Select user(); 加密函数: Md5加密语法: Insert into 表名 values (‘用户名’,md5(pws1)); --------pwd 为设置的密码(自定义)
怎样验证加密的密码是正确的呢 Sql语句语法: Select*from 表名 where username=‘user1’and password=md5(‘pwd1’);
Password 加密方式 单项不可逆的(一般是给mysql数据库的密码加密使用的) Dos系统修改mysql数据库的密码 set password=password(‘新密码’) 字符串函数:
Select CONCAT(ename,sal )空格 的薪水是 示例:黄运树的薪水是5000 日期函数 语法: Select year(字段名)from 表名
6.分组函数 注意一点:如果使用分组函数 如果不在分组函数的字段 必须存在group by 后面 语法:select max(sal),部门字段 from 表名 group by 部门字段 按照部门来分类
7.子查询 就是一个查询的结果可以作为另一个查询的数据源或者条件 查询贵公司中薪水最高人的姓名和具体薪水的工资 语法:select ename,sal from 表名 where sal=(select max(sal)from emp) 查询出公司职位是经理和她的姓名 Select ename ,grade from emp 表名 where grade in(select grade from emp where grade=’经理’) 8.多表查询 我想查询员工的姓名和员工所在的部门 笛卡尔积
表联合 左外联合(左边表中如果存在记录没有匹配到还想显示出来) 语法:select m.ename,e.ename from emp m left join emp e on e.empno=m.mgr
右外连接(左边表中如果存在记录没有匹配到还想显示出来) :select m.ename,e.ename from emp m right join emp e on e.empno=m.mgr 内连接的语法结构: 9.左(右)外连接的语法结构: Select +字段列表+from+表名1 +left|right+[outer]+join +表名2 on join_condition1(为两个表的连接条件); 存储过程: 存储过程是sql语句和流程控制语句的预编译集合并以一个名称存储并作为一个单元来处理 语法结构: Create[创建] + procedure[存储过程]+ 自定义存储过程名称([proc_parameter])[characteristics......]+routine_body Characteristics:指定存储过程的特性 Proc_parameter指定存储过程的参数列表,形式如下: [IN|OUT|INOUT] param_name type In:输入参数 如果没有指定默认的为输入参数 Out:输出参数 Inout:输入输出参数 Param_name:参数名称 Type:数据类型
Create procedure sele () select book_id,book_name,price,store from bookinfo 创建存储过程 Call sele 调用存储过程 事务: 事务有一个或多个sql语句组成的一个不可分割的整体 sql语句之间相互依赖,要目全部执行 要么全都不执行