Sql语句学习

本文详细介绍了SQL语句的基本使用方法,包括创建数据库、表,添加、查询、更新和删除数据的操作,以及如何管理数据库表和配置字符集。同时,文章还提供了关于MySQL配置文件的调整方法,以避免插入中文时遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sql语句不区分大小写

注意:往mySql数据库中不能插入汉语时

Mysql配置文件:
   “在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然 后重启mysql就ok了”

创建数据库

create DATABASE  liangshan

创建表

create table hero(
  HeroId  int,
   HeroName VARCHAR(50),
   HeroNickName VARCHAR(50),
sex char(2)
)

但是这种情况非常可能将表建在其他的数据库中,所以建议使用以下方式

USE test
go
create table hero(
  HeroId  int,
   HeroName VARCHAR(50),
   HeroNickName VARCHAR(50),
sex char(2)
)

使用sql语句来添加数据

(插入语句)

INSERT INTO hero VALUES(1,'宋江','及时雨','男')

使用sql语句来查询数据

1、(查询语句)

select *  from  heronew

2、查询工资低于100的

SELECT * from heronew where sal<100

(update语句)

3、工资低于100的人的薪水提高10%(update语句)

UPDATE heronew SET sal=sal+sal*0.1 WHERE sal<100

3、工资低于100的人的薪水提高10%,且变为女的(update语句)

UPDATE heronew SET sal=sal-sal*0.1 ,sex='女' WHERE sal<1000;

(delete语句)

4、删除性别为女的(delete语句)

DELETE  FROM heronew WHERE sex='女';

删除表

1、把表的结构和表的数据一起删掉

     drop  table  hero;

2、只删除表内的数据

         delete  table  hero;

表的管理

表明和列的命名规则:

必须以_或者字母开头,不能以数字开头;

不适用sql语句的关键字和保留字来命名;name是保留字

不超过128个字符;

各种编码格式:

unicode码的特点:用两个字节表示一个字符(可以是英文字母,也可以是汉字),导致对汉字支持比较,

非unicode编码特点:用一个字节表示表示一个字母用两个字节表示一个汉字

big5支持繁文

iso-8859-1支持欧文

gb2312  国标码

gbk  可以支持更多的汉字

mysql支持的数据类型:

1、字符类型

char                  定长 非unicode编码(最大存储8000个字符)  最多存8000个字符,4000个汉字

char(10)            ‘小寒’ 定长的,后边的6个字符虽然为空,但是仍然占据内存

varchar            变长   非unicode编码(最大存储8000个字符)  最多存8000个字符,4000个汉字

varchar(10)            ‘小寒’变长的,后边的6个字符为空,被系统自动回收

nchar   定长  使用uincode编码最大存储4000字符

nvarchar    变长使用uincode编码最大存储4000字符   中文   长度不超过4000 

ntext              可变长度unicode数据  最大长度为2的30次方-1

text                可变长度非uniceod数据 2的31次方-1

既然varchar这么优秀,为什么还要用char?

在这种情况下,应当使用char:存放学号,所有的学号都是6位的,这时要用char,使用char的效率会较高。在查询的时候会6位一起匹配

2、数字型

1、bit     范围0-1

2、int     范围   负的2的31次方到正的2的31次方-1

3、float   存放小数   不推介使用  float(3)指定保留3位小数

4、numerical   小数可以  推介使用   可以指定两个数    精度、小数位数  

      numeric(10,2)整个数字的长度是10,小数位占2位     会自动截断所以numeric甚至可以表示整数

3、日期类型

datetime(表示时间)

timestamp(时间戳)

4、图片

但是用的很少,在数据库里保存的是图片的地址,真正的图片保存在服务器上,每一个大型的服务器背后都有一个大的服务器群(图片服务器,带宽足够的大)

在什么情况下图片一定要放在数据库里边?

在对图片有安全要求时,,而且这个图片不要太大,可以考虑放入数据库上,而不是图片服务器上

5、视频

网站上方的是一张图片,点击播放的时候在去访问视频所在的服务器上 ,当非要往数据库里边放到额时候,binary字段可以存放

公司管理系统:

主键:可以唯一的标识一条记录,主键不能够重复出现,任何一种类型都能做主键,主键不能重复,而且必须给值

创建表,主键可以被修改为不存在的主键,但是绝对不能改为存在的主键

外键:1、只能指向主键,2、外键和他指向主键的类型要一致

create TABLE clerk(cleId int PRIMARY KEY,cleName nvarchar(30),age INT )  //cleId为主键不能重复

插入数据

1、INSERT into clerk  VALUES (1,'贾宝玉',18)

2、    //插入部分字段,在表明后指定字段列表,但是一定要插入主键

INSERT INTO clerk(cleId,cleName) VALUES(3,'林黛玉')         

3、修改一个字段  把贾宝玉的年龄修改为38

updte  clerk  set age=38 where cleName='贾宝玉'

4、把2号改为薛蟠 年龄40

UPDATE clerk SET age=40,cleName='薛蟠' WHERE cleId=2

5、修改年龄为空的人改为'薛宝钗'  is null  判断是否为空

UPDATE clerk SET cleName ='薛宝钗' WHERE age is null;   

6、删除全部数据

delete  from 表名

7、删除指定数据  多个条件  and  删除年龄大于等于70 并且小于等于90 的人(and)或 or

delete form 表名 where 字段名='值'  and 字段名='值' 


配置mysql字符集

1、http://www.2cto.com/database/201308/236961.html

2、http://zhidao.baidu.com/link?url=4VNBWemj_ktO7298LXwWhmrca3mfr1rge_fEdgXhdZp3TtJpYvqpQeNAWLxT8lsV1GleAt4XqixUoqNxYuLD0-Oud3R9B_4RScmnvAkN0j_


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值