SQL学习笔记

SQL是一种数据库查询和程序设计语言

一、学习环境

1、MySQL安装

博主安装的MySQL版本为:mysql-5.5.59-winx64

安装下载地址为MYSQL官网,选择Windows平台,下载文件选择ZIP Archive版本(这个版本比较简洁,适合想直接用cmd运行SQL服务的初学者)。下载时会提醒你是否要登录/注册,如果选择登录务必记住自己设置的登录密码,选择下方的 no thanks可以直接下载。

将下载的zip包解压到一个想安装sql的目录下(建议目录全英文),在跟bin同界面的路径下新建一个my.ini文件,文件内容为:

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8 

[mysqld]

#设置3306端口

port = 3306 

# 设置mysql的安装目录

basedir=F:\mysql-5.6.17-winx64

# 设置mysql数据库的数据的存放目录

datadir=F:\mysql-5.6.17-winx64\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB 

注意将文件目录改写为自己的安装目录

以管理员身份打开cmd,用cd命令进入到mysql解压包中的bin目录,输入安装mysql命令:mysql install

输入启动mysql命令:net start mysql

为了方便以后使用mysql,打开控制面板->系统->高级设置->环境变量,新建环境变量MYSQL_HOME,路径填写mysql解压包路径,将这个MYSQL_HOME再添加到Path中(在Path中新建变量为:%MYSQL_HOME%\bin)


2、运行MYSQL

打开cmd,输入:mysql -uroot -p

提示要输入密码,默认为空,如果之前登录过,就输入登录密码

看到提示 mysql> 说明成功进入MySQL


3、退出/停止MySQL

先使用 quit 或者 exit 命令退出mysql

注意用quit命令退出mysql时,记得句尾加 ;

再使用命令:net stop mysql 停止mysql服务


二、使用数据库

(SQL不区分大小写,使用时,通常特殊字大写,变量与数据小写)

1、查看数据库:show databases;            //记得加 ; 号


2、连接数据库:use <数据库名>;          

3、在数据库中查看表:show tables;


三、创建数据库

1、创建一个数据库:create database <数据库名>;

2、使用创建好的数据库:use <数据库名>;

3、在数据库中新建表(table):create table <表名> (项目名1 数据类型(长度),项目名2......);

为了便于连表查询,建立几张表如下——


SQL有很多的数据类型,详见:SQL通用数据类型

//这里建表中用到的date默认格式为:yyyy-mm-dd,日期类型占3个字节

//int类型占4个字节

//char类型的长度是固定的,vachar类型的长度是可变的(vachar计算长度时要增加一个字节来存储长度数值)


4、向表中插入数据:insert into <表名>(项目1,项目2,...) values(数值1,数值2,....)


这里我们发现由于physics单词超出了定义允许的字符长度,所以没有完整显示出来

这时候用修改表字段命令:alter table <表名> change <旧项目> <新项目> 项目类型;


一次性插入多行数据:


同理向表record插入数据:



三、约束

SQL中常见的约束有

主键默认值唯一外键非空
primary keydefaultuniqueforeign keynot null

1、定义主键

(1)在创建表时直接定义主键:create table A(项目一 <数据类型>primary key,......);

(2)在已定义的表中设置一个项为主键:alter table <表名> add constaint primarykey primary key(项目名);


//第一个primarykey是约束名,可以自己定义,如



2、如果一个项目被default约束,那么在它的插入数据为空时,取默认值

//为一个项目添加default约束的形式与加主键类似

3、唯一约束:这一个项目中不能有重复值


4、外键

alter table <表名1> add constraint 外键自定义名 foreign key(外键项目名) references <表名2>(主键项目)

一个表可以有多个外键,外键必须参考(references)另一个表的主键

比如说,我们要求record中的借书者id必须在读者表reader中有登记,就可以设置record中id外键参考reader主键。

这样当向record中插入一个reader中未登记的id记录时,就会提示错误。

//查看warning用命令:show warnings;


5、非空

违反非空约束在5.6以上的版本会报错,低于此版本则只有警告,不会报错


四、数据的修改删除

1、删除数据库:drop database <数据库名>;

2、删除表:drop table <表名>;

3、重命名表可以用: rename table <旧名> to <新名>;

                                 alter table <旧名> rename <新名>;

4、在表中新增(add)、删除(drop)、修改(change)一个项目都可以用 alter 语句

(1)要想将新项目插入到指定位置,用after


5、删除一行表记录:delete from <表名> where (指定行条件)

//在sql中,由于数据表数据的存放是无序的,我们是通过条件排序获得顺序,所以通常不必指定插入行


五、其他

1、索引(index)

2、视图(view)

3、导入:load data infile '数据文件路径' into table <表名>;

4、导出(outfile)

5、备份:mysqldump -u root 数据库名 表名>备份文件名;






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值