SQL语言包含4个部分:

★ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。 ★ 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。 ★ 数据查询语言(DQL),例如:SELECT语句。 ★ 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

关于数据库编码的设置:

在MySQL设置向导中可以设置编码格式,如果设置成了UTF-8在命令行操作时需要注意一下几点: 建表前设置编码:

set names utf8;

查询建表时用的字符集:

show create table tablename;

为了能在Windows命令行执行insert,update,则执行命令:

set character_set_client=gbk;

为了能在Windows命令下能正确查看中文,则执行命令:

set character_set_results=gbk;

创建数据库:

create database StudentManage;

使用数据库:

use StudentManage;

创建数据表:

//学生表(学号,学生姓名)

create table Student(

Sno char(9) primary key,

Sname varchar(20) unique

);

//课程表(课程代号,课程名称,先修课程代号)

create table Course(

Cno char(4) primary key,

Cname char(40),

Cpno char(4),

foreign key (Cpno) references Course(Cno)

);

//选课表(学生学号,课程代号)

create table SC(

Sno char(9),

Cno char(4),

Primary key(Sno,Cno),

foreign key(Sno) references Student(Sno),

foreign key(Cno) references Course(Cno)

);

mysql> desc Student;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| Sno   | char(9)     | NO   | PRI | NULL    |       |

| Sname | varchar(20) | YES  | UNI | NULL    |       |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.01 sec)

mysql> desc Course;

+-------+----------+------+-----+---------+-------+

| Field | Type     | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| Cno   | char(4)  | NO   | PRI | NULL    |       |

| Cname | char(40) | YES  |     | NULL    |       |

| Cpno  | char(4)  | YES  | MUL | NULL    |       |

+-------+----------+------+-----+---------+-------+

3 rows in set (0.05 sec)

mysql> desc SC;

+-------+---------+------+-----+---------+-------+

| Field | Type    | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+-------+

| Sno   | char(9) | NO   | PRI | NULL    |       |

| Cno   | char(4) | NO   | PRI | NULL    |       |

+-------+---------+------+-----+---------+-------+

2 rows in set (0.01 sec)

修改表结构:

添加一个表字段:

alter table student add column sex char(2);

删除一个表字段:

alter table student drop column sex restrict;

修改字段类型:

alter table Student modify Sname varchar(20);

alter table student change Sname Sname varchar(20);

查看表的create语句:

show create table Student;

结果如下:

| Student | CREATE TABLE `student` (

`Sno` char(9) NOT NULL,

`Sname` varchar(20) default NULL,

PRIMARY KEY  (`Sno`),

UNIQUE KEY `Sname` (`Sname`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

其中的UNIQUE KEY `Sname` (`Sname`)就是约束索引了。 删除字段的约束索引:

alter table Student drop index Sname;

向表中插入数据:

插入全部字段:

insert into Student values ('080010011','arthinking');

插入部分字段:

insert into Course (Cno, Cname) values('0001','Java');

修改字段值:

update Student set Sno='080010013' where Sno='123456789';

删除全部数据:

delete from Student;

删除指定数据:

delete from Student where(Sno=’ 080010013’) or Sname is null;

查询:

查询所有列:

select * from student;

查询指定列:

select Sname from Student;

取消重复行:

select distinct Cname from Course;

模糊查询:

select * from student where Sname like '_a%';

排序:

select * from Student order by Sno asc;

select * from Student order by Sno desc;

group by和having子句:

select avg(Cno),Cname from Course group by Cname having avg(Cno) >2;

Course表包含数据如下:

+------+-------+------+

| Cno  | Cname | Cpno |

+------+-------+------+

| 0001 | Java  | NULL |

| 0002 | C++   | NULL |

| 0003 | C++   | NULL |

+------+-------+------+

3 rows in set (0.00 sec)

查询结果如下:

+----------+-------+

| avg(Cno) | Cname |

+----------+-------+

|      2.5 | C++   |

+----------+-------+

1 row in set (0.06 sec)

多表查询:

连接查询: 查询有选课的学生:

select s.Sname from Student s,SC sc where s.Sno = sc.Sno;

多行子查询: 查询在选课表中有选课的学生的全部信息:

select * from Student s where s.Sno in (select sc.Sno from SC sc);

在from自句中使用子查询创建临时表: 查找除了0001号课程外已有人选修了的课程的名称:

mysql> select distinct c.Cname from Course c,(select Cno,Sno from SC where Cno not in('0001') ) temp where c.Cno=temp.Cno;

分页查询:

MySQL:select * from Student limit 0,2;

mysql sql语句编码_SQL语句实用例子 MySQL编码设置相关推荐

  1. mysql sql 备份表_SQL语句之备份表

    SELECT INTO 语句:表示从一个表中选取数据,然后把数据插入另一个表中,常用来备份一张表 1.全表结构备份: SELECT * INTO new_table_name FROM old_tab ...

  2. mysql sql 除法运算_SQL语句怎么表示除法运算?

    展开全部 select case when 除数 =0 then 0 else 被除数/除数 end 一. 基本概念 SQL语言,是结构化查询语言(Structured Query Language) ...

  3. sql declare用法_SQL语句的优化分析

    一.开门见山,问题所在 sql语句性能达不到你的要求,执行效率让你忍无可忍,一般会时下面几种情况. 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应 ...

  4. mysql单引号转义_sql语句中使用单引号'作为转义字符

    在SQL中,我们都知道单引号 ' 表示字符串的开始和结束符号,如: select * from students where name = '小明'; 但如果字符串里面有单引号时,应该怎么查询呢? 这 ...

  5. mysql where 条件先后_sql语句 where 后条件执行先后顺序

    针对mysql,其条件执行顺序是 从左往右,自上而下 针对SQL server.orcale,其条件执行顺序是从右往左,自下而上 1.mysql where执行顺序是从左往右执行的,在数据量小的时候不 ...

  6. sql镶嵌查询_SQL语句 - 嵌套查询

    嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询.其中外层查询也称为父查询,主查询.内层查询也称子查询,从查询. ...

  7. mysql sql注入工具_SQL注入工具实践

    程序简介 超级SQL注入工具(SSQLInjection)是一款基于HTTP协议自组包的SQL注入工具,支持出现在HTTP协议任意位置的SQL注入,支持各种类型的SQL注入,支持HTTPS模式注入. ...

  8. mysql sql高级教程_SQL高级教程

    一.top子句 top子句用于规定要返回的记录的数目 并非所有数据库系统都支持top子句 # sqlserverSELECT TOP number|percent column_name(s) FRO ...

  9. mysql sql长度限制_SQL限制– MySQL限制

    mysql sql长度限制 When we work with a huge amount of data there are cases when we need to restrict the n ...

最新文章

  1. unity在中文环境下的支持不好
  2. 如何设计一个高可用系统?要考虑哪些地方?
  3. 著名统计学家David Cox去世:他提出的「COX回归模型」曾影响一代人
  4. JavaScript实现trial Division试除法算法(附完整源码)
  5. pythonista3使用说明_Pythonista中文文档:sound
  6. TensorFlow学习之——checkpoints
  7. Linux下redmine安装插件报错
  8. javascript设计模式-Constructor(构造器)模式
  9. 【ShoppingWebCrawler】-C#开发的基于Webkit内核开源爬虫蜘蛛引擎
  10. IOS-UISearchBar
  11. SQL常用命令和操作
  12. 分层结构的生活例子_AI的分层强化学习与人脑神经机制的联系
  13. 遇到一次传导干扰的怪事
  14. 【三维路径规划】基于matlab粒子群算法无人机三维路径规划【含Matlab源码 192期】
  15. Java代码解压rar文件
  16. 【10086个赞】Cocos Creator助力H5游戏大爆发
  17. 关于向社会公开征求《深圳市住房公积金贷款管理暂行规定》(征求意见稿)意见的通知
  18. 10年创业消亡史:风口起落的背后,是6271家创业公司的黯然离场
  19. [zz] 音频DAC的原理
  20. 信息量、熵、交叉熵、KL散度、JS散度、Wasserstein距离

热门文章

  1. 1-1 机器学习和深度学习综述-paddle
  2. LeetCode简单题之连续字符
  3. LLVM基础技术图例
  4. Mobileye独创性创新
  5. 激光雷达Lidar Architecture and Lidar Design(上)
  6. 黎曼曲面Riemann Surface
  7. Tensor Core技术解析(上)
  8. android ScrollView/NestedScrollView 添加可拖动的滚动条
  9. greendao3出现 Error:Execution failed for task ':app:greendao'
  10. Fragment有直接关系的关键性类FragmentManager,FragmentTransaction,FragmentActivity