数据库基础知识

Posted lxiaoxuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库基础知识相关的知识,希望对你有一定的参考价值。

       使用cmd访问mysql数据库
        1、安装数据库
        2、服务(我的电脑->右键->管理->服务->mysql)是否启动(如果没启动就右键启动)
        3、a.在cmd中进入mysql安装目录的bin文件夹,直接使用mysql登录。
           b.配置环境变量,直接在cmd的任何目录中使用mysql命令登录。
           c.直接开始菜单-mysql-cmd窗口-直接输入密码
           
        如果使用a,b 方式,则需要完整的登录命令:
        mysql -h host_name -u user_name -p password:当连接MySQL服务器不在同台主机时,填写主机名或IP地址(u:登录MySQL的用户名,P:登录MySQL的密码)
        注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为linux并且登录用户名字与MySQL的用户名相同即可不用输入用户名密码,linux默认root登陆,
              windows默认用户是ODBC。
        
        显示所有的数据库:
            show databases;
        创建数据库:
            create database 数据库名;
        删除数据库:
            drop database 数据库名;
        指定使用哪一个数据库:(切换数据库,之后的操作全是对此数据库进行的操作)
            use 数据库名;
        显示默认数据库中的所有表:
            show tables;(显示当前库的所有表,使用之前先必须指定哪一个数据库)
        
        创建表:(varchar表示字符串,1个长度表示1个字符即1个汉字)
                create table 表名(
                    列名1 类型 ,
                    列名2 类型
                    //示例
                    id int PRIMARY KEY auto_increment,
                    name varchar(4),
                    sex int,
                    age int,
                    stuNum varchar(10)
                )
        添加表数据:(数据库中的字符串用单引号括起来)
            insert into t_students(表名) values(‘jbl‘,1,20,‘123‘);
        -- 选择插入某些字段
        -- 在表名后添加小括号,在小括号里面填入要插入的字段名
        -- 如果表名后不指定要插入字段,则默认要把所有字段内容赋值
        INSERT INTO t_class0225(id,`name`,age,`address`) VALUES(NULL,‘小李‘,18,‘延龙‘)
        INSERT INTO t_class0225(id,age,`address`) VALUES(NULL,18,‘延龙‘)
            
            
        显示表(查询)某一个表的数据:(*:表示通配符,通配所有字段)
            select * from t_students(表名);//表示所有字段全部显示
            select name,age(字段名) t_students(表名);//只显示姓名和年龄字段
        修改表数据:(带条件,否则会把整个表的都改了)
            where:指定修改某一行的位置
            and:表示并且,用来指定多个条件(一个条件已经不足以确定一行)
            update 表名 set `字段名`=修改后的内容 where 字段名=表中某数据;
            
        删除表数据:(一定要带条件where,否则会把整个表的数据都删了)
             or:表示或者,多个条件可以使用()小括号,用法和java一样
             delete from 表名 where 字段名=表中某数据;
            
        查询本机IP:
            com中输入ipconfig
            
        主键:PRIMARY KEY  
            数据库每一行的唯一标识,不能重复。
        
        SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)
        
        数据类型:
            数值类型:
            int,smallint,float,double
        
            货币数据类型:
            DECIMAL(M,D) 表示数小数
            M:整数位数+小数位数的总和
            D:小数位数
            整数位数不能超过M-D   

            字符串类型:
            char(M):定长的字符串    M:长度
            varchar(M):可变长的字符串
            text:小文本字符串

            时间类型:
            Date: YYYY-MM-DD
            time: hh:mm:ss
            DateTime: YYYY-MM-DD hh:mm:ss
            
            布尔类型:
            bit
            
        AUTO_INCREMENT:
               自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,
            MySQL会插入一个比该列中当前最大值大1 的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOT NULL,并定义为
            PRIMARY KEY 或者定义为UNIQUE键。(只能用在int类型上,每一张表中只能有一个自动递增字段。)
            
        UNSIGNED:
               无符号,此属性禁用负值,将数值的取值范围从零开始。
            
        NULL和NOT  NULL
               默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。
               
        DEFAULT              
               可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。
              
        ZEROFILL
               前导零填充数值类型值以达到列的显示宽度。
               
        DEFAULT cur_timestamp
               创建新记录时默认保存当前时间(仅适用timestamp数据列)
        
        ON UPDATE cur_timestamp
               修改记录时默认保存当前时间(仅适用timestamp数据列)
    
        数据表类型:
            MyISAM:成熟、稳定和易于管理
            InnoDB:加入事物、数据行级锁定机制、外键约束条件、崩溃恢复等新功能
            HEAP:只存在于内存中,可做临时表

        1、确定主外键关系,两个表,在外键表中引用主键表的id
        2、指定外键所对应的主键表,主键字段名
    
        外键:foreign key(外键字段) references 表名(引用表中的某字段)
        (自动检查外键是否匹配,仅适用InnoDB)
            create table score(
                cid int not null auto_increment primary key,
                score int,
                sid int,
                foreign key(sid) references t_student(id)
            );

        主表和从表 :
        1、当主表中没有对应的记录时,不能将记录添加到子表
            ——成绩表中不能出现在学员信息表中不存在的学号;

        2、不能更改主表中的值而导致子表中的记录孤立
            ——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;

        3、子表存在与主表对应的记录,不能从主表中删除该行
            ——不能把有成绩的学员删除了

        4、删除主表前,先删子表
            ——先删学员成绩表、后删除学员信息表
    
        比较运算符:
        = : 相等(两个数不能为空)
        != 或者 <> : 不等于
        <=> 和=一样,只是多了比较null
        例子:SELECT 1=NULL
              SELECT 1<=>NULL
        
        BETWEEN运算符:用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内:
        IN运算符:用于检验一个值(或者一个求值表达式)是否包含在一个指定的值集合中。
        LIKE运算符:它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。
        
        “%” (百分号)  代表任意长度(长度可以为0)的字符串
        举例:
            a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab 等都满足该匹配串
        
        “_ ”(下横线)  代表任意单个字符
        举例:
            a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串

以上是关于数据库基础知识的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础入门教程 -

python---基础知识回顾数据库基础操作(sqlite和mysql)

测试复习大纲

SQL基础教程的介绍

数据分析指北 - 基础(基础数据操作之一)

网络基础+数据库基础笔记