mahonglin123456 发表于 2018-10-20 13:13:16

MySQL数据库学习笔记(三)----基本的SQL语句

  【正文】
  主要内容:

[*]  一、cmd命令行的常用命令
[*]  二、数据定义语言(DDL)
[*]  三、数据操纵语言(DML)
[*]  四、数据查询语言(DRL)
[*]  五、事务控制语言(TCL)
  一、cmd命令行的常用命令:
  当我们使用MySQL 5.5 Command Line Client这个客户端登陆时,只能登陆root用户。如果今后创建了别的用户,就很麻烦了,所以我们不用MySQL 5.5 Command Line Client这个客户端,而是直接使用cmd。
  登录MySQL数据库:
  因为在这之前安装MySQL的时候,已经将环境变量配置好了,所以可以直接在cmd中输入如下命令进行登陆:
mysql -u root -p  紧接着输入密码就行了。
  上方代码中,-u表示username,即用户名。-p表示password,即密码。
http://images.cnitblog.com/blog/641601/201410/161038087942970.png
  查看数据库:
show databases;  使用数据库:(此命令后面可以不加分号)
use 数据库名;  查看当前数据库表:
show tables;  注:命令后面的分号表示结束。
http://images.cnitblog.com/blog/641601/201410/161100360765672.png
  注:上图中,先输入show databases;显示出了四个库,前三个表示系统的库,第四个test是系统自带的测试库。然后我们使用test这个数据库,显示:Database changed,表示当前的数据库处于激活状态。紧接着可以对其进行其他相关的命令了。这里我们输入show tables,可以看到test这个数据库的表里面是空的。
  所以要开始建表了,于是就涉及到了SQL语句。
  SQL全称是:结构化查询语言(Structured Query Language)。既然是语言,就涉及到了语法。下面来看一下常见的语法。
  二、数据定义语言(DDL)
  数据定义语言:Data Definition Language。如CREATE, DROP,ALTER等语句。需要注意的是,数据库中的命令不区分大小写。
  创建数据库(CREATE DATABASE语句):
  【举例】新建数据库,命名为mydb:
CREATE DATABASE mydb;  注:如若要删除数据库,将“create”改为“drop”即可。
  创建表(CREATE TABLE语句):
  【举例】创建一个名为teacher的表:
CREATE TABLE teacher(  
id int primary key auto_increment,
  
name varchar(20),
  
gender char(1),
  
age int(2),
  
birth date,
  
description varchar(100)
  
);
  上面所有的代码其实是同一行。
  定义字段的格式:字段的名字+字段的类型+属性
  注:每个字段定义完后,要用逗号隔开,最后一个字段没有逗号。
  一般情况下,每个表都要有一个主键。
  命令运行的效果如下:
http://images.cnitblog.com/blog/641601/201410/161102452014154.png
  查看表结构:
desc teacher;  效果如下:
http://images.cnitblog.com/blog/641601/201410/161103309196287.png
  需要注意的是:主键是用来唯一代表一条记录的字段(主键值必须是唯一)
  删除表(DROP TABLE语句):
DROP TABLE teacher;  注:drop table 语句会删除该的所有记录及表结构
  修改表结构(ALTER TABLE语句):(假设表名为test)

[*]  alter table test add column job varchar(10); --添加表列
[*]  alter table test rename test1; --修改表名
[*]  alter table test drop column name; --删除表列
[*]  alter table test modify address char(10) --修改表列类型(改类型)
[*]  alter table test change address address1char(40) --修改表列类型(改名字和类型,和下面的一行效果一样)
[*]  alter table test change column address address1 varchar(30)--修改表列名(改名字和类型)

  举例:将主键修改为自动增长:alter table tab_teacher change id>  三、数据操纵语言(DML):
  数据操纵语言:Data Manipulation Language。如:INSERT(增), UPDATE(改), DELETE(删)语句
  添加数据(INSERT INTO…语句):(即添加表的记录)
INSERT INTO 表名(字段1,字段2,字段3) values(值,值,值);  举例:
insert into tab_teacher(name,gender,age,createDate) values('smyh','b',22,now());  注:上方的now()函数可以调出当前系统的时间。
  然后通过如下命令进行查询表的所有记录:
select * from tab_teacher;  其中,通配符“*”表示所有字段,即从tab_teacher这个表中查所有字段的记录。
  显示效果如下:
http://images.cnitblog.com/blog/641601/201410/161107097791951.png
  修改数据(UPDATE … SET语句):
UPDATE 表名 SET 字段1名=值,字段2名=值,字段3名=值 where 字段名=值;  注:where后面的部分表示修改的条件。修改时,按照字段1、字段2、字段3的先后顺序修改。
  删除数据:(DELETE FROM…语句)
  删除所有记录:
DELETE FROM 表名;  删除ID为1的记录:
DELETE FROM 表名 where id=1;  四、数据查询语言(DRL):
  数据查询语言(Data Retrieval Language --DRL):SELECT语句。
  在实际开发中,数据查询语言用的是最多的。我们现在以下面的这张表格为例:
http://images.cnitblog.com/blog/641601/201410/161109118575213.png
  注:实际开发中,要避免使用通配符"*"(通配符代表所有字段),因为系统要先解析出所有的字段名,将其还原为真实的名字,然后再进行操作。如果记录数据库内容特别多,会影响效率。
  查询所有老师的信息:
select * from tab_teacher;  或者:(推荐)
select id,name,gender,age,job,createDate from tab_teacher;  在没有表被引用的情况下,允许指定DUAL作为一个假的表名:
  DUAL是虚拟表。也就是说,表中没有这个数据,但是要执意使用sql语句,系统就会用这个虚拟表来满足你。举例效果如下:
http://images.cnitblog.com/blog/641601/201410/161113410448583.png
  查询ID为2的老师信息:
select * from tab_teacher where id=2;  查询职业为空的老师信息:
select * from tab_teacher where job is null;  注意,上方代码中,字段为空用“job is null”来表示,而不是“job=null”。
  查询ID为2的老师的姓名和性别:
select name,gender from tab_teacher where id=2;http://images.cnitblog.com/blog/641601/201410/161114474982020.png
  查询性别为女和指定日期的老师信息:
select $ from tab_teacher where gender='w' and ceateDate='2014-10-14';  注:并且用“and”,或用“or”。
  查询性别为男或者ID小于2的老师:
select * from tab_teacher where gender='m' or id
页: [1]
查看完整版本: MySQL数据库学习笔记(三)----基本的SQL语句