认识SQL

 

一、SQL

SQL 是用于访问和处理数据库的标准的计算机语言

二、做什么?

1、SQL 面向数据库执行查询

2、SQL 可从数据库取回数据

3、SQL 可在数据库中插入新的记录

4、SQL 可更新数据库中的数据

5、SQL 可从数据库删除记录

6、SQL 可创建新数据库

7、SQL 可在数据库中创建新表

8、SQL 可在数据库中创建存储过程

9、SQL 可在数据库中创建视图

10、SQL 可以设置表、存储过程和视图的权

二、RDBMS

RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

RDBMS 中的数据存储在被称为表的数据库对象中。

表是相关的数据项的集合,它由列和行组成。

三、RDBMS术语

1、数据库: 数据库是一些关联表的集合。.

2、数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

3、列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。

4、行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

5、冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

6、主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

7、外键:外键用于关联两个表。

8、复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

9、索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

10、参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

四、使用数据库

1.使用命令检查数据库是否启动:

可以在DOS窗口输入 net start mysql启动数据库服务,或者输入 net  stop mysql停止MySQL服务!

2.连接数据库:

mysql  -h服务器主机地址 -u用户名 -p密码

注意:如果是在本机操作,不用写-h.....-p和密码之间没有空格!!!

3.查看当前安装的MySql版本信息和连接用户名:

SELECT  VERSION(),USER();

其中VERSION()返回的是版本号; USER()返回的是连接数据库的用户名:

SQL的组成:根据功能划分,SQL语言主要由以下几个部分组成。

(一)DML (数据操作语言,又叫数据操纵语言):用来插入,修改,删除数据库中的数据,如INSERT ,UPDATE,DELETE等。

(二)DDL (数据定义语言):用来建立数据库,数据库对象,定义数据表结构等。大部分是以CREATE 开头的命令,如CREATE TABLE ,CREATE  VIEW 以及DROP TABLE等。

(三)DQL(数据查询语言):用来对数据的查询,如SELECTdent

(四)DCL  (数据控制语言):用来控制数据库组件的存取许可,存取权限等。如GRANT ,REVOKE,COMMIT等。

4.数据库中的运算符

(一、算术运算符)

 

五、操作数据库

 

1.对数据库的基本
create database 数据库名;   #创建数据库

 

注意:在Windows系统下,默认是不区分大小写的!分号代表一行结束,一般都加上。

 

show  databases;            #查看所有的数据库

 

use 数据库;                #切换数据库

 

drop database  数据库名;    #删除数据库

#查看数据库的定义
SHOW CREATE datebase 表名;
 
创建数据库CREATE DATABASE [IF NOT EXISTS] 数据库名;
删除数据库DORP DATABASE [IF EXISTS] 数据库名;
查看数据库SHOW DATABASE;
使用数据库USE 数据库名;

六创建表


#语法如下:

create table [if not exists] 表名(

    字段名  数据类型 [字段属性] [约束] [索引] [注释],

 

)[表类型][表字符集][注释];

 

#注意:[]里面的可写可不写,根据实际需求去写就好!

七、数据字段属性

UNSIGNSD无符号声明该数据列 
ZEROFILL0填充不足位数的用0来填充 
AUTO_INCREMENT自动增长,每添加一条数据,自动在上一个记录数上加1通常用于设置主键,且为整数类型可定义起始值和步长

八、常用的字段属性约束

字段属性约束名 关键字     说明
 非空约束 NOT NULL不允许为空NULL
    默认约束DEFAULT 

 默认值设置 

格式为:DEFAULT '男'

 或者 DEFAULT 1

 唯一约束 UNIQUE KEY 表示字段的值是唯一的,允许为空,但只能有一个为空
 主键约束 PRIMARY KEY 设置该字段为表的主键,可以作为该表的唯一的标识
 外键约束FOREIGN KEY用于建立两表之间的关系,需要指定那个表引用哪个字段。

  注意:InnoDB引擎:支持外键,MyISAM不支持,外键关联的表要求都是InnoDB的表。

 

 自动增长AUTO_INCREMENT

 (1)设置该列为自增字段,默认为每条自增1

 (2)  通常用来设置主键,而且是整数类型

 (3)  可设置初始值和步长

九、数据类型

1、数值类型

数据类型字节数取值范围
TINYINT1

有符号:-2的7次方~2的7次方

无符号:0~2的8次方-1

INT4有符号值:-2的31次方~2的31次方-1
DOUBLE8 
DECIMAL8[(M),D]M+2字节

M:总位数

D:小数位精度位数

2、字符串类型

数据类型         字节         说明
  CHAR【M】      M字节   固定长度    M为0~255的整数
 VARCHAR[M]     可变长度可变长度的字符串 M为0~65535的整数
   TINYTEXT   0~255 微型文本串
 TEXT   0~65535   长文本

3、日期类型

数据类型  格式   取值范围
DATEYYYY-MM-DD 1000-01-01~9999-12-31
 DATETIME YY-MM-DD hh:mm:ss   1000-01-01 00:00:00 ~9999-12-31 23:59:59
   TIMEhh:mm:ss 
TIMESTAMPYYYYMMDDHHMMSS1970年某时刻~2038年某时刻,精度为1s
YEARYYYY格式的年份     1901~2155

4、数据表存储类型

常见的MyISAM与InnoDB类型
名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约2倍

引用场景:

  • MyISAM存储引擎:访问速度较快,可以对不需要事务处理,以访问为主的应用适合!
  • InnoDB存储引擎:在事务处理上有优势,可以对需要频繁更新,删除,同时对事务要求比较高,需要实现并发控制的应用!
  • .MySQL 5.5以上的版本默认的存储引擎是InnoDB.
    
    #可以通过以下查看默认引擎
    
    show variables like 'storage_engine%';
    
    
    #修改默认的存储引擎
    
    defaultsrotage- engine=InnoDB;
    
    
    #注意:修改后要重新启动MySQL服务才生效
    

    指定表的存储引擎

  • 
    create table 表名(
    
        
    
        #.......省略代码
    
       
    
    )engine=储存引擎;

     

十、修改数据表(ALTER TABLE)

  1.修改数据表

修改

表名

ALTER TABLE 旧表名  AS 新表名;

添加

字段

ALTER TABLE 表名    ADD字段名   列类型【属性】;

修改

字段

ALTER TABLE 表名  MODIFY字段名,列类型【属性】

ALTER TABLE 表名  CHANGE旧字段,新字段名,列类型【属性】;

删除

字段

ALTER TABLE表名 DROP 字段名;

2.关于主键外建设置
 

#创建表
create table student(  
              `studentNo` int(4) primary key, #设置主键,``区别保留字
     ); 
            
#多字段联合主键
create  table student(    
          id int(4),   
         name varchar(50),   
         primary key(id,name)    #设置联合主键
    );


添加主键约束alter  table  表名 add  constarint 主键名 primary key 表名 (主键字段);

添加外键约束:alter  table 表名  add  constarint 外键名 foreign key (外键字段) references 关联表名(关联字段);

注意:添加外键约束时,外键表在前,主键表在后!主键是被引用,外键是引用主键!#删除时要先删除子表,再删除主表。

3.查看表删除表
 
        


#查看表

 

show tables;

 

#查看表的定义

 

desc 表名;

 

#删除表

drop table 表名;



#查看表的结构
DESC 表名;
	
	#设置严格检查模式
SET sql_mode='strict_trans_tables';


            
          
     4.关于自增


#设置初始值

auto_increment=5;

 

#设置步长

auto_increment_increment=3;

 

#设置步长起点偏移

auto_increment_offset=1;

 


          
         
     
            
             
     
            
            
        
            
 

 

 

 


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值