mysql 常用语句

1 mysql常用语句

1.1 数据库的基本操作命令:

开启MySQL服务 net start mysql
关闭MySQL服务 net stop mysql
显示数据库 mysql->show databases;
创建数据库 mysql->create database db;
删除数据库  mysql->drop database db;
选择数据库 mysql->use db
导出数据库 mysqldump -uroot -p123456 –databases dbname >/root/ test.db
导入数据库 mysqlimport -uroot -p123456 或 mysql -uroot -p123456
Mysql>source /root/test.db

1.2 数据表的基本操作命令:

1.2.1 对表的操作

创建表 mysql->create table mytable(name varchar(20),sex(char(1),birth date);
删除表    mysql->drop table mytable;
更改表名 mysql->alter table mytable RENAME new_name
显示表的内容 mysql->show tables;
显示表的结构 mysql->describe mytable;
导出数据表 mysqldump -uroot -p123456 –databases dbname –table tabname >/root/ test.db
导入数据表 mysql -uroot -p123456
Mysql>use db1
Mysql>source /root/test.db

1.2.2 对列的操作:

在一个表中
增加一条字段 mysql->alter table yourtable add col_name varchar(20) not null;
删除一个字段 mysql->alter table yourtable drop col_name ;
更改列定义 mysql->alter table yourtable MODIFY age varchar(20) not null;
更改列名和定义 mysql->alter table yourtable CHANGE address(colum old name) addr(new nae) varchar(20) not null;

1.2.3 对行的操作:

插入一条记录 mysql->insert into mytable values (‘summer’,’m’,’1983-08-24’);
删除一条记录 mysql->delete from mytable where name=’summer’;
修改一条记录 mysql->update mytable set sex=’vm’ where name=’summer’;
插入多条记录 mysql->insert into mytable values (”aa’,’m’) ,(‘sr’,’ms’),(’s’,’ls’);
mysql->insert into mytable select *from yourtable;(这种形式的INSERT 语句中,新行的数据值不是在语句正文中明确地指定的.而是语句中指定的一个数据库查询. 该查询的逻辑限制:»查询不能含有ORDER BY子句. »查询结果应含有与INSERT语句中列数目相同的列,且数据类型必须逐列兼容. )
添加主键: Alter table tabname add primary key(col)
删除主键: Alter table tabname drop primary key(col)
创建视图:create view viewname as select statement
删除视图:drop view viewname
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。

1.2.4 聚合函数

排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1

1.2.5 关键字
  1. AS 在查询结果中显示新的列名
    select name as ‘姓名’ from students order by age
  2. Where被用来规定一种选择查询的标准
    语法:
    SELECT column FROM table WHERE column condition value
    下面的操作符能被使用在WHERE中:
    =,<>,>,<,>=,<=,BETWEEN,LIKE
    注意: 在某些SQL的版本中不等号< >能被写作为!=
    解释:
    SELECT语句返回WHERE子句中条件为true的数据
    例:
    从” Persons”表中选出生活在” Sandnes” 的人
    SELECT * FROM Persons WHERE City=’Sandnes’
    3.And & Or :在WHERE子句中AND和OR被用来连接两个或者更多的条件
    解释:
    AND在结合两个布尔表达式时,只有在两个表达式都为 TRUE 时才传回 TRUE
    OR在结合两个布尔表达式时,只要其中一个条件为 TRUE 时,OR便传回 TRUE
    例:
    SELECT * FROM Persons WHERE FirstName=’Tove’ AND LastName=’Svendson’
    SELECT * FROM Persons WHERE firstname=’Tove’ OR lastname=’Svendson’
  3. Between…And用途:指定需返回数据的范围
    语法:
    SELECT column_name FROM table_name
    WHERE column_name
    BETWEEN &#118;alue1 AND &#118;alue2
    例:
    SELECT * FROM Persons WHERE LastName BETWEEN ‘Hansen’ AND ‘Pettersen’
    5.Distinct用途:DISTINCT关键字被用作返回唯一的值
    解释:
    当column-name(s)中存在重复的值时,返回结果仅留下一个
    语法:
    SELECT DISTINCT column-name(s) FROM table-name
    例:SELECT DISTINCT Company FROM Orders
    6.Order by用途:指定结果集的排序
    解释:
    指定结果集的排序,可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方式排序,从最高值到最低值)的方式进行排序,默认的方式是ASC
    语法:
    SELECT column-name(s) FROM table-name ORDER BY { order_by_expression [ ASC | DESC ] }
    例: SELECT Company, OrderNumber FROM Orders
  4. Group by用途:对结果集进行分组,常与汇总函数一起使用
    语法:
    SELECT column,SUM(column) FROM table GROUP BY column
    例:SELECT Company,SUM(Amount) FROM Sales GROUP BY Company
  5. Having用途:指定群组或汇总的搜寻条件
    解释:
    HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时,HAVING 则与 WHERE 子句功能相似。
    语法:
    SELECT column,SUM(column) FROM table
    GROUP BY column
    HAVING SUM(column) condition &#118;alue
    例:SELECT Company,SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000
  6. 几个高级查询运算词
    A: UNION 运算符
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    B: EXCEPT 运算符
    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    C: INTERSECT 运算符
    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    10..between…and:select * from students where age between 20 and 30
    11.like:select * from students where name like ‘李%’ (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:’% 李%’;若是第二个字为李,则应为’李%’或’李’或’‘。)
    e.[]匹配检查符:select * from courses where cno like ‘[AC]%’ (表示或的关系,与”in(…)”类似,而且”[]”可以表示范围,如:select * from courses where cno like ‘[A-C]%’)注:关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。
    [^]stockname like ‘[^F-M]%’ ——— (^排除指定范围)
1.2.6 外连接

1、left (outer) join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
2:right (outer) join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
3:full/cross (outer) join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
4:inner join
内连接:只显示两者共有的记录

2.1 事务

2.1.1 事务的属性

事务具有ACID属性
即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性

原子性
就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全
回滚,全部不保留

一致性
事务完成或者撤销后,都应该处于一致的状态

隔离性
多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时,
不合理的存取和不完整的读取数据

永久性
事务提交以后,所做的工作就被永久的保存下来

2.1.2 事务处理类型

自动处理事务
系统默认每个T-SQL命令都是事务处理 由系统自动开始并提交

隐式事务
当有大量的DDL 和DML命令执行时会自动开始,并一直保持到用户明确提交为止,切换隐式事务可以用SET IMPLICIT_TRANSACTIONS
为连接设置隐性事务模式.当设置为 ON 时,SET IMPLICIT_TRANSACTIONS 将连接设置为隐性事务模式。当设置为 OFF 时,则使连接返回到自动提交事务模式

用户定义事务
由用户来控制事务的开始和结束 命令有: begin tran commit tran rollback tran 命令

分布式事务
跨越多个服务器的事务称为分布式事务,sql server 可以由DTc microsoft distributed transaction coordinator
来支持处理分布式事务,可以使用 BEgin distributed transaction 命令启动一个分布式事务处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯过客TYGK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值