SQL笔记(二)

ctrl+C 强行终止
exit; --退出连接
– 单行注释
/* */多行注释

mysql -u root -p --连接数据库
所有的语句都使用;结尾
show databases --查看所有的数据库

mysql> use school --切换数据库 use 数据库名
Database changed

show tables; --查看数据库中所有的表
describe student; --显示数据库中所有的表的信息
create database westos; --创建一个数据库

数据库 XXX语言
DDL 定义
DML 操作
DQL 查询
DCL 控制

二,操作数据库 (了解)
操作数据库>操作数据库中的表>操作数据库中表的数据
mysql 关键字不区分大小写
2.1 操作数据库
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] westos

2.删除数据库
DROP DATABASE [IF EXISTS]westos
3.使用数据库
Tab 键的上面,如果你的表名或者字段名是一个特殊字符,就需要带``
use school
4.查看数据库
SHOW DATABASES --查看所有的数据库

对比:SQLyog的可视化操作
学习思路:
·对照sqlyog可视化历史记录查看sql
·固定的语法或关键字必须要强行记住

2.2 数据库的列类型

数值:
	tinyint   十分小的数据    1个字节
	smallint 较小的数据        2个字节
	mediumint   中等大小的数据  3个字节
(常用)   int          标准的整数        4个字节
	bigint         较大的数据      8个字节
	float         浮点数	       4个字节
	double      浮点数            8个字节
	decimal     字符串形式的浮点数 (金融计算的时候,一般是使用decimal)  

字符串:
	char	字符串 固定大小的    0~255
(常用)   varchar	可变字符串	0~65535
	tinytext	微型文本		2的8次方-1
	text	文本串		2的16次方-1   保存大文本


时间日期:
	java.util.Date

	  ·date      YYY-MM-DD,日期格式
	  ·time 	HH:mm:ss时间格式
	  ·datetime 	YYYY-MM-DD  HH:  ss  最常用的时间格式
	  ·timestamp	时间戳,    1970.1.1到现在的毫秒数!  也较为常用
	  ·year		年份表示


null:
	·没有值
	·注意,不要使用NULL进行运算,结果为NULL

2.3 数据库的字段属性(重点)
unsigned:
·无符号的整数
·声明了该列不能声明为负数

zerofill:
	·0填充的
	·不足的位数,使用0来填充 

自增:
	·通常理解为自增,自动在上一条记录的基础上+1(默认)
	·通常用来设计唯一的主键~ index, 必须是整数类型
	·可以自定义设计主键自增的起始值和步长


非空  Null not null
	·假设设置为not null  如果不给它赋值,就会报错!
	·NULL,如果不填写值,默认就是null


默认:
	·设置默认的值!
	·sex,默认值为男,如果不指定该列的值,则会有默认的值!

2.4 创建数据库表(重点)

/*目标:创建一个school数据库
  创建学生表(列,字段) 使用SQL 创建
  学号int  登录密码varchar(20)  姓名, 性别varchar(2),出生日期(datatime),家庭住址 ,email
  
  注意:使用英文()  ,表的名称和字段  尽量使用  `` 括起来
  AUTO INCREMENT 自增
  字符串使用  单引号括起来
  所有的语句后面加, 最后一个不用加
  PRIMARY KEY 主键     一般一个表只有一个唯一的主键!
  
*/
CREATE TABLE IF NOT EXISTS `student`(
	`id` INT(3)NOT NULL AUTO_INCREMENT  COMMENT'学号',
	`name` VARCHAR(30)NOT NULL DEFAULT '匿名'COMMENT'姓名',
	`pwd` VARCHAR(30)NOT NULL DEFAULT'123456'COMMENT'密码',
	`sex` VARCHAR(2)NOT NULL DEFAULT'女'COMMENT'性别',
	`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
	`address` VARCHAR (100)DEFAULT NULL COMMENT'家庭住址',
	`email` VARCHAR(50)DEFAULT NULL COMMENT'邮箱',
	PRIMARY KEY(`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

SHOW CREATE DATABASE school – 查看创建数据库的语句
SHOW CREATE TABLE student – 查看student数据表的定义语句
DESC student – 显示表的结构

格式

CREATE TABLE [IF NOT EXISTS] 表名(
字段名 列类型 [属性][索引][注释],
字段名 列类型 [属性][索引][注释],
字段名 列类型 [属性][索引][注释],
……
字段名 列类型 [属性][索引][注释]
)[表类型][字符集设置][注释]

2.5 数据表的类型

关于数据库引擎
INNODB 默认使用
MYISAM 早些年使用的

                        MYISAM              INNODB
事务支持            不支持                     支持
数据行锁定         不支持                     支持
外键约束             不支持                    支持
全文索引             支持                       不支持
表空间的大小        较小                      较大   约为MYISAM的2

常规使用操作:
MYISAM 节约空间,速度较快
INNODB 安全性高,事务的处理 ,多表多用户操作

在物理空间存在的位置: 所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
本质还是文件的存储

MySQL 引擎在物理文件上的区别: ·innoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
·MYISAM对应文件
①*.frm -表结构的定义文件
②*.MYD 数据文件(data)
③*.MYI 索引文件(index)

设置数据库表的字符集编码
CHARSET=utf8
不设置的话,会是mysql默认的字符集编码 ~不支持中文
也可以 在my.ini 中配置默认的编码
character-set-server=utf8

2.6 修改删除表

修改
修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE fteacher11 RENAME AS teacher11

  增加表的字段    ALTER TABLE 表名  ADD 字段名  列属性
  ALTER TABLE teacher11 ADD age INT(11)
  
  修改表的字段   (重命名,修改约束!)

ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher11 MODIFY age VARCHAR(11) – 修改约束
ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher11 CHANGE age age1 INT(1) – 字段重命名

删除表的字段: ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher11 DROP age1

删除
删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher11
所有的创建和删除操作尽量加上判断,以免报错~

注意点: ·``字段名,使用这个包裹!
·注释 – /**/
·sql关键字大小写不敏感,建议大家写小写
·所有的符号全部用英文!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值