MySQL基本操作语句(一)

一、服务器端常用命令

# 本地连接数据库
# mysql -u root -p
Enter password:  
也可以直接写成
# mysql -uroot -p'niu123456'

# 远程连接数据库(如在118.24.241.124上连接106.12.2.195上的)
# mysql -u root -p -h106.12.2.195 -P3306    //-h用于指定登录主机的IP地址,-P(大写)用于指定远程主机的端口
Enter password:

mysql> show databases;                  //显示所有数据库
mysql> use mysql;                       //选择mysql数据库
mysql> select database();               //查看当前是哪个数据库
mysql> show tables;                     //显示当前mysql数据库中的所有数据表
mysql> desc user;                       //显示user表的所有字段
mysql> show create table user\G;        //显示user表的建表语句
mysql> show create database mysql\G;    //显示mysql数据库的建库语句
mysql> select version();                //查看当前数据库的版本
mysql> select user();                   //查看当前是哪个用户

mysql> show status;                     //查看mysql当前状态(很多)
mysql> show variables;                  //查看mysql的参数
mysql> show variables like '%dir';
mysql> show processlist;                //查看当前mysql服务器的队列 
mysql> show engines;   
或者 
mysql> show engines\G;                  //查看存储引擎。  

mysql> \h;                              //显示命令清单(帮助信息)
mysql> \s;                              //显示mysql信息
mysql> \c;
mysql> \q 或者exit  或者 quit;  退出mysql程序 

数据库备份与还原。

1、数据库备份
mysqldump -u root -p 'niu123456' mysql > /mydata/databack/mysql-001.sql;   //为名为mysql的数据库做备份。导出sql文件保存到/mydata/databack/mysql-001.sql文件中

2、数据库还原
mysql -u root -p 'niu123456' mysql < /mydata/databack/mysql-001.sql;  还原数据库 

二、Mysql常用数据引擎

1、数据库引擎的概念
        数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。MySQL的核心就是存储引擎。在同一数数据库中的不同表,可以使用不同的数据引擎。Mysql 支持MYISAM、InnoDB、HEAP、BOB、ARCHIVE、CSV等多种数据表类型,最常用的是MYISAM 和 InnoDB

2、MyISAM 存储引擎
        MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物。
        这种存储引擎在建表的时候,它会创建3个文件。分别是(.frm, .MYD, .MYI):.frm 存储表的定义(也就是表结构啦),.MYD 就是表里面的数据,.MYD存储索引。这样的划分操作系统对大文件的操作是比较慢的,这样将表分为三个文件,那么.MYD这个文件单独来存放数据自然可以优化数据库的查询等操作。 

特点:
<1>不支持事务
<2>不支持外键
<3>查询速度很快。如果数据库insert和update的操作比较多的话采用表锁效率低(建议使用innodb)。
<4>对表进行加锁

3、InnoDB 存储引擎
        InnoDB是一个事务型的存储引擎,有行级锁定和外键约束,提供了具有提交,回滚和崩溃恢复的事务安全,但是对比MyLSAM引擎,写的效率会比差一些,并且会占用更多的磁盘空间以保持数据和索引。

特点: 

<1> 更新多的表,适合处理多重并发的更新请求。
<2> 支持事务。
<3> 可以从灾难中恢复(通过bin-log日志等)。
<4> 外键约束。只有他支持外键。
<5> 支持自动增加列属性auto_increment。

三、Mysql常用数据类型

1、整数类型

数据类型有符号无符号存储需求说明
int-2147483648~21474836470~42949672954字节常设11位,用做表的自增类型id 
tinyint-128~1270~2551字节常设2位,用于设置类别、状态相关的字段
smallint-32768~327670~655352字节不常用,可设置6位,用于设置类别、状态相字段
mediumint-8388608~83886070~167772153字节不常用
bigint

-9223372036854775808

~9223372036854775807

0~184467440737095516158字节不常用

2、浮点数类型
 

3、字符串型

4、时间日期型

 

 

四  常用数据定义语言(DDL)

1、创建与删除数据库

1、创建数据库qinsercmf_db
# create database qinsercmf_db                    //常用
# create database if not exists qinsercmf_db      // (if not exists 防止当新创建的数据库名称存在时出错, 此语句可以省略)

2、删除数据库qinsercmf_db
# drop database qinsercmf_db;                    //常用
# drop database if exists qinsercmf_db            // 如果不存在,忽略错误

2、创建与删除数据表

1、建表语句结构为:
create table 表名(
    字段1 类型() [约束条件] [默认值] [备注]
)

2、例,创建qs_admin表
CREATE TABLE `qs_admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL COMMENT '用户名',
  `password` varchar(60) NOT NULL COMMENT '密码',
  `sex` enum('男','女') DEFAULT NULL COMMENT '性别',
  `ip_address` varchar(20) DEFAULT '' COMMENT 'ip地址',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新日期',
  `status` tinyint(1) DEFAULT '1' COMMENT '1正常 0不显示',
  PRIMARY KEY (`id`)    
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表注释' 

3、删除数据表
drop table [if exists] 表名 [, 表2, 表3,…];

3、设置主键

4、添加约束

5、更改表结构语法

更改表结构语法:alter  table 表名 Action;
Action 语句完成以下功能:
(1)	增加列:Add 列名 建表语句 [comment ‘注释’]  [first / after 列名]
例:向Student_info 表中加入 username, sex 两个字段,要求在id之后
Alter table Student_info Add username varchar(20) not null Comment ‘用户名’ After id ,  Add sex  int(1) Comment ‘性别’ After username;
(2)	增加一个主键:Add primary key (列名); (如果此表已经有主键,则会出错)
(3)	增加一个外键:Add foreign key(列名) references 表名(列名); 
(4)	更改指定列的默认值:Alter 列名set default新的默认值;
例:修改Student_info 表中address字段的默认值:
Alter table Student_info Alter address set default ‘中国北京’;
(5)	更改列名称:Change 旧列名  新列名 建表语句 [first/after 列名]
例:将Student_info 表中的 postcode字段名修改成 youbian;
Alter  table Student_info Change postcode youbian() 
(6)	更改列类型:Modify 列名 建表语句 [comment ‘注释’] [first / after 列名];
例子:更改sex列的类型为 char 两个字节长,放在 sname之后
(7)	删除一个列:Drop  Column 列名
例:删除Student_info 表中的 testname字段 
Alter table Student_info Drop Column testname
(8)	更改表名称:  Rename  as 新表名
例: 把表 users 重命名为user_info
	Alter  table users  Rename  AS user_info

 

三、常用的SQL—DML 数据操作语言

1、插入表数据

方法一:(常用)
# insert into TableName(title, pid, keywords, content) values('标题一', 1, '关键词,关键词', '正文内容');

方法二:
# insert into TableName set title="标题二", pid=1, keywords="关键词", content="正文内容";

方法三:插入多条
INSERT INTO TableName (title, username) VALUES('标题标题', '作者'),('标题标题', '作者')
注:这里的Values 和Value等效

2、更新记录

公式:
Update 表名 Set 字段a=新值a, 字段b=新值b.... [Where 条件] [Order by 字段  asc/desc] [limit 行数]

例:
例: 将bookid=2的图书 价格修改为24.00元,同时将作者修改为 张三
    update books set price=24.00, author='张三' where bookid=2;
例:将 catid=1的类别的图书价格都打八折,
    update books set price=price*0.8 where catid=1;
例:将最新录入的五本图书的类别 修改为catid=3 
    Update book set catid=3 order by bookid desc limit 5; 
例:将价格为80.00的书的价格修改为70.00,
    update books set price=70.00 where price=80.00
例:将 id>9的所有的school_id字段的值 加18. 
    UPDATE sci_user_school SET school_id=school_id+18 WHERE id > 9;
例:将last_price 字段为空的 全部修改成与price字段同样的值。
    UPDATE books SET last_price = price WHERE last_price IS NULL;

3、高级查询更新

UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def');

说明:REPLACE(str,from_str,to_str)在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串 
例如 我们要修改 l_position表中 url字段里 所有包含http://pifa.chnimport.com的内容 ,修改为http://www.chnimport.com
sql语句为 : UPDATE l_position SET url=REPLACE(url, 'http://pifa.chnimport.com', 'http://www.chnimport.com'); 

4、删除记录

# Delete From 表名 [Where 条件] [Order by 字段  asc/desc] [limit 行数]

例:delete from books;  清空表中所有数据,
    delete from books where bookid=8;
    delete from books order by bookid desc limit 3;(删除最后三条) 

5、还原表:

 Truncate Table 表名;

        用于清空表,只保留表结构,效率比使用 delete from 表名 要高,并且能使自动增加字段初始化为1,而delete  from 表名则无法使自动增加字段返回到初始状态 。

四、常用SQL—DQL数据查询语言:Seletc 

1、基本查询语法:

SELECT 语句的常用语法(子句顺序不能变)
Select .. From .. [Where ..] [Group by ..][ Having ..][Order by..][ Limit..] 

2、子查询

3、联合查询

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值