SQL语句(Null,DDL)

特殊的NULL类型
Null类型特征:
(1)所有的类型的值都可以是null,包括int、float等数据类型
(2)空字符串””,不等于null,0
不等于null
(3)NULL 不是假false,也不是真true,
(4)任何运算符,判断符碰到NULL,都得NULL
(5)NULL的判断只能用is null,is not null
(6)NULL 影响查询速度,一般避免使值为NULL

面试:
为什么建表时,加not null default '' / default 0
答:不想让表中出现null值.
为什么不想要的null的值
答:不好比较,null是一种类型,比较时,只能用专门的is null 和 is not null来比较.
碰到运算符,一律返回null
效率不高,影响提高索引效果.

因此,我们往往,在建表时 not null default ''/0

不使用Null的理由
A.所有使用NULL值的情况,都可以通过一个有意义的值的表示,这样有利于代码的可读性和可维护性,并能从约束上增强业务数据的规范性。
B. NULL值到非NULL的更新无法做到原地更新,更容易发生索引分裂,从而影响性能。
注意:但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性。
C. NULL值在timestamp类型下容易出问题,特别是没有启用参数explicit_defaults_for_timestamp
D. 不在,!=等负向条件查询在有空值的情况下返回永远为空结果,查询容易出错
E. Null列需要更多的存储空间:需要一个额外字节作为判断是否为NULL的标志位
SQL
SQL全称是:结构化查询语言(Structured Query Language)。
SQL语言包含4个部分:
数据定义语言(Data Definition Language--DDL):如CREATE, DROP,ALTER等语句
数据操纵语言(Data Manipulation Language- -DML):INSERT, UPDATE, DELETE语句
数据查询语言(Data Retrieval Language --DRL):SELECT语句 
事务控制语言(Transaction Control Language--TCL):如COMMIT, ROLLBACK等语句
说明:
mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写(但是一开始因为不熟悉,可以先用小写辅助记忆)
值,除了数值型,字符型和日期时间类型使用单引号(’’)
别名,尽量使用双引号(“”),而且不建议省略as
每个语句可以分为多行编写,最后使用分号(;)结尾即可
如果语句有语法错误,需要快速结束,可以\c,但是必须保证所有(),单引号,双引号是成对结束的
可以使用#单行注释
所有标点符号使用英文状态下的半角输入方式
命名规则:
数据库、表名不得超过30个字符,变量名限制为29个
必须只能包含 A–Z, a–z, 0–9, _共63个字符
不能在对象名的字符间留空格
必须不能和用户定义的其他对象重名
必须保证你的字段没有和保留字、数据库系统或常用方法冲突
保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了

DDL
DDL用于定义数据库的结构,比如创建、修改或删除数据库、表结构对象,包括如下SQL语句:
CREATE DATABASE:创建数据库
DROP DATABASE:删除数据库
CREATE TABLE:创建数据库表
ALTER TABLE:更改表结构、添加、删除、修改列长度
DROP TABLE:删除表
CREATE INDEX:在表上建立索引
DROP INDEX:删除索引
操作Database
注意:database不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。

1、创建数据库
create database 数据库名 [charset 字符集];   (关键字大写效果:CREATE DATABASE 数据库名;)
如果不指定字符集,则按照安装mysql服务时选择的默认字符集。

2、查看所有已经存在的数据库(当前用户有权限查看的)
show databases;

3、删除数据库
drop database 数据库名;

4、使用数据库:
use 数据库名;

注意:要操作数据库之前必须先说明是对哪个数据库进行操作。除了以上1、2、3的语句,其他任何语句之前,必须有use 数据库名;的语句存在
表结构的操作
5、查看当前数据库的所有表格
show tables;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fadegun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值