Mysql 入门

认识mysql数据库

原地址: http://www.1314sl.com

数据库基础:
1.什么是数据库?
     数据库:database 存储数据的仓库

        数据库:高效的存储和处理数据的介质


    2.数据库的分类
分为两种:  关系型数据库(SQL)
            非关系型数据库(NOSQL:not only SQL)
        

3.不同的数据库阵营中的产品?
关系型的数据库 
    大型:oracle DB2
    中型:SQL-SERVER,MYsql
    小型:access 等
非关系型数据库:memcached,mongodb,redis

4.区别?
    关系型数据库:安全(保存磁盘,基本不可能丢失)容易理解
    非关系型数据库:效率高,不安全(断电丢失)


    d
----关系型数据库---------
1.什么是关系型数据库?
    是一种建立在关系模型(数据模型)上的数据库。
    模型包含三个方面
        数据结构: 二维表(列和行)
        操作指令:所有sql语句
        完整性约束:表(内数据约束),表与表之间约束(外键)
2.关系型数据库:维护实体内部,实体与实体之间的联系

如果表对应的某个字段没有值,但是系统还是会分配空间!


------------关键字说明-------------------
数据库:database
数据库系统:DBS(Database system)是一种虚拟系统
DBMS:database management system 数据库管理系统
DBA:database administrator,数据库管理员

行/记录:row/record。
列/字段:column/field.


------------------SQL 关系型数据库---------
SQL:structured query language 结构化查询语言

SQL分为三个部分
    DDL:datadefinition language ,数据定义语言。
    DML:数据操作语言;其中DML又分了一个DQL 数据查询语言
    DCL:数据控制语言。主要负责权限管理(用户)grant,revoke
    
    SQL 是一种约束,但不强制(类似W3C)。
    

------------Mysql数据库-------------
Mysql数据库是一种c/s结构的软件: 客户端/服务器。
    (服务器一直运行,客户端在需要使用的时候运行)
  
    交换方式:
        1.客户单链接认证:链接服务器,认证身份:mysql.exe -hpup
            mysql.exe -hlocalhost -p3306 -uroot -p
        2.发送SQL指令
        3.服务器接收SQL指令:处理SQL指令, 返回操作结果
        4.客户端接收结果:显示结果
            show databases--查看所有数据库
        5.断开链接(释放资源,服务器并发限制)
            exit/quit/\q  退出
    
------------------Mysql服务器对象--------------------

将mysql服务器内部对象分成了四层:系统(DBMS)->数据库(DB)->数据表(Tabel)->字段()

--------------SQL的基本操作--------------
    基本操作:CRUD
        SQL的基本操作对象进行分类:
        库操作,表操作,数据操作
    
    
    基本语法
    创建库 create 
    Create database 数据库名字[库选项];
        库选项:用来约束数据库,分为2个选择项
            字符集设定:charset/character set 具体字符集(存储编码格式)常用的字符集:GBK和UTF8
            校对集设定:colate 具体校对集
        
        
--------- 创建数据库
        create database only charset utf8

        -- 创建关键字数据库
        create database database  charset utf8 

        --(SQL语句保存:只会告诉用户的大概位置,不会说明保存愿意(静默模式))

        --创建中文数据库
        create database 中国  charset utf8;

        -- 解决方案:告诉服务器当前中文的字符集是什么 中文:GBK

        set names gbk;
        create database 中国 charset utf8;

        当创建数据库SQL语句执行之后,发送了什么?
        destiny电脑 保存路径:C:\ProgramData\MySQL\MySQL Server 5.6\data
        1. 在数据库系统中,增加了对应的数据库信息
        2. 会在保存数据的文件夹下:data目录,创建一个对应的数据库名称的文件夹
        3. 每个数据库下都有一个opt文件:保存了库选项
                --校对集依赖字符集
--------查看数据库
        1.查看所有数据库:show databases;
        2.查看指定的数据库:模糊查询
            show databases like 'pattern';
            %:表示匹配多个字符
            _:表示匹配单个字符
        3.查看数据库的创建语句:
            show create database only;
            show create database ‘database‘;
            只要需要用到关键字都得用反引号
            -- 数据库在执行SQL语言之前会优化SQl;

----------更新数据库
        数据库名字不可以修改
        
        数据库的修改选项:字符集合校对集(校对集依赖字符集)
        
        alter database 数据库名称[库选项]
        Charset/charcter set[=]字符集
        collate 校对集
        
        修改数据库    名    字符集
        alter database only charset gbk; 
        
-----删除数据库
        所有的操作中:删除是最简单
        drop database 数据库名字
    1.删除数据库之后
        在数据库内部看不到对应的数据库
    2.在对应的数据库存储的文件夹内:数据库名字对应的文件夹也被删除
        (级联删除:里面的数据表全部删除)
    
    
    注意:数据库的删除,不能乱删除。要备份再删除! 
    
    
--------表操作
        表与字段是密不看可分的。
        
        ----新增数据表
        
        create tabel[if not exists]表名(
         字段名字 数据类型,
         字段名字 数据类型--最后一行不需要逗号
        )[表选项]
            
            if not exists:如果表名不存在,那么就创建,否则不执行创建代码:检查功能
            表选项:控制表的表现
                字符集:charset/character set 具体字符集;
                校对集:collate 具体校对集;
                存储引擎:engine 具体的存储引擎(innodb 和 myisam)
                
            然后一个表的设计都必须设定数据库
    创建表1.       
        careat tabe if not exists (数据库名.)student(
            name varchar(10),
            gender varchar(10),
            number varchar(10),
            age int
        )charset utf8;
    
    创建表2.
        进入数据库环境 use 数据库名字;
            先进入数据库,然后创建表
            use 表名
            use only
            create table class(
                name varchar(10),
                room varchar(10),
                sex varchar(2)
                
            )charset utf8;
            
        创建表的SQL指令之后发生了什么(多了文件在对应数据库的文件夹下面)
            1.指定数据库下已经存在对应的表
            2.在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)
            
            
------------查看数据表-------------------------------------      
        数据库能查看的分数,表都可以查看
        
    1.查看所有表
        show tables;
    
    2.查看部分表 :
        模糊匹配 show tables like '%关键字'
    
    3.查看表创建语句
        show create table student\g  ---\g 等价于 分号;
        show create table student\G  ---\纵向
        
    4.查看表结构:查看表中的字段信息
            Desc / describe /show columns from 表名
            
            -- 查看表结构
            desc class;
            describe class;
            show columns from class;

            Type 列表类型
                            字段类型: 数据类型
            Field 字段名字
            
            NULL 列属性 是否允许为空
            
            Key  索引类型(PRI主键)UNI唯一等
            
            Default  列属性  大部分字段默认为NUll
            
            Extra   列属性:扩充(额外的)



---------------修改数据表-----------------
        表本身存在,还包含字段;
                修改本身和字段
        
        --修改表本身
        
        表本身可以修改:表名和表选项
        
        修改表名:rename table 老表名 to 新表名
        
        --修改表选项:字符集,校对集合存储引擎
        Alter table 表名 charset =GBK;
        
        --新增字段
        Alter table 表名 add[column]字段名  数据类型[列属性][位置];
            位置:字段名可以存放表中的任意位置
            First:第一个位置
            after: 在哪个字段之后:after 字段名 ;默认是在最后一个字段之后
        
            alter table my_student
            add column id int
            first;
        
        --修改字段:通常是修改属性还在数据类型
        Alter table 表名 modify 字段名 数据类型【位置】【属性】;
        alter table student 
        modify number char(10) after id; 
    
        --重命名字段
        Alter table 表名 change 旧字段 新字段 数据类型【属性】【位置】;
        
        --删除字段
        alter table 表名 drop 字段名;
        
    ---删除数据表
        drop table 表名1,表名2;--可以一次性删除多张表;


        
----------------数据操作-----------------       
    新增数据表
    1.
        insert into  表名 values (值,值,值),
                                 (值,值,值)
        
    2.
        给部分字段插入数据
        insert into 表名(字段列表)values (值,值),(值列表)
        
    
------查看数据
    select * from 表名: [where 条件]
    
    --查看指定字段和条件数据
    select 字段名 from 表名 条件

-------更新数据
    Update 表名 set 字段=值  【where 条件】

--------删除
    delete from 表名 【where 条件】
 
-------------------中文数据问题----------------------------------------------------------------------
查看所有字符集
    --基本上:服务器是万能,什么字符集都支持
    show character set;
    
    
    -- 查看服务器默认的处理的字符集
    show variables like 'character_set%';   

    --修改服务器认为的客户端数据的字符集为:GBK
    set character_set_client =gbk;

    --修改服务器给定数据的字符集为GBK
    set character_set_results=GBK;

    快捷方式: set names 字符集
    set names gbk;

-------------------------------校对集问题---------------------

    校对集:数据比较的方式
    有三种方式
        _bin:binary,二进制比较,取出二进制位,一位一位的比较,区分大小写
        _cs:  case sensitive 区分大小写
        _ci:  case insensitice 不区分大小写
        
    查看数据库所支持的校对集:show collation;
    
    --- 创建表使用不同的校对集
        create table my_collate_bin(
            name char(1)
        )charset utf8 collate uft8_bin;
        
        create table my_collate_ci(
            name char(1)
        )charset utf8 collate uft8_qeneral_ci;
    
    --排序查找
    select * from  表名_bin order by 字段名;
    select * from  表名_ci order by 字段名:
    
-----------------Web乱码问题-------------   
    
    动态网页由三个部分构成:
        浏览器、apache 服务器(PHP)、数据库服务器
        都有自己的 字符集(中文)
    
    统一编码(三码合一)

原地址: http://www.1314sl.com

oneNate笔记
oneNate笔记

原地址: http://www.1314sl.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容