• Mysql数据库笔记


    出错记录:
    1、mysql服务启动不了,进程意外终止 1067
       错误显示:can not connect to mysql server on local hosts(1061)
       解决方法:原来是我傻逼把原来的MySQL数据库给删掉了


    2、服务已经启动,但是输入密码时 进不去
    错误显示:ERROR 1045 <28000>:Access denied for user'root'@'locahost'<using password:YES>
    解决方法:http://blog.sina.com.cn/s/blog_759a5a7c01017dj0.html

    3、

    默认端口号:3306

    把mysql的bin目录添加到环境变量中就可以在任意目录下都可以打开bin目录了。


    之前看到的root@localhost这些是因为别人改了提示符:
    mysql>prompt u@ h d>
    u表示当前用户 h表示服务器名称 d表示当前数据库


    MySQL语句规范:


    关键字和函数名称全部大写;
    数据库名称、表的名称、字段的名称全部小写;
    SQL语句必须以分好结尾。

    加中括号表示可以省略
     

    显示当前版本;
    mysql>SELECT VERSION();
    显示当前时间;
    mysql>SELECT NOW();
    显示当前用户;

    mysql>SELECT USER();


    修改原始密码:

    打开命令提示符界面, 执行命令: mysqladmin -u root -p password 新密码
    执行后提示输入旧密码完成密码修改, 当旧密码为空时直接按回车键确认即可。


    开始:


    //创建数据库:
    MySQL>CREATE DATABASE (IF NOT EXISTS) case;
    //显示已经存在的数据库;
    MySQL>SH0W DATABASES;
    //重命名数据库名称
    先关闭数据库,然后找到文件夹所在目录,更改文件夹名称。
    //显示某个数据库;
    MySQL>SHOW CREATE DATABASE case;

    //更改数据库编码为utf8;
    MySQL>ALTER DATABASE case CHATACTER SET=utf8;

    //删除数据库:
    MySQL>DROP DATABASE case;


    修改和删除

    修改默认值:
    ALTER TABLE TB_NAME ALTER 字段名 SET DEFAULT 默认值;
    ALTER TABLE TB_NAME ALTER 字段名 DROP DEFAULT ;
    修改表名
    ALTER TABLE 表名 RENAME TO 新名;
    修改字段名
    ALTER TABLE 表名 CHANGE 旧字段 新字段 新字段数据类型
    修改字段数据类型
    ALTER 表名 MODIFY 属性名 数据类型
    增加字段
    ALTER TABLE 表名 ADD 字段1 字段1的条件 [FIRST | AFTER 字段2];
    删除字段
    ALTER TABLE 表名 DROP 字段;
    修改字段的排列位置:
    ALTER TABLE 表名 MODIFY 字段1 字段1数据类型 FIRST|AFTER 字段2;
    更改表的存储引擎:
    ALTER TABLE 表名 ENGINE=引擎名
    添加主键约束:
    ALTER TABLE 表名 ADD PRIMARY KEY (外键名)
    删除外键约束:
    ALTER TABLE 表名 DROP FOREIGN KEY (外键别名)
    修改数据表的名称:
    ALTER  TABLE table_name RENAME TO new_table_name
    删除记录:
    delete from users where id=1;
    修改记录:
    update 表名 set 字段=新值 where 条件;
    update users set id=1 whers sex=1;

    表字段的修改:
    增加字段
    ALTER table tb_name ADD column_name 属性 位置;           //增加一个字段,默认为空
    alter table user add COLUMN new2 VARCHAR(20) NOT NULL;  //增加一个字段,默认不能为空
    删除字段
    alter table user DROP COLUMN new2;                //删除一个字段

    alter table user DROP column1,column2;                        //删除多列

    修改一个字段
    alter table user MODIFY new1 VARCHAR(10);            //修改一个字段的类型
    alter table user CHANGE new1 new4 int;              //修改一个字段的名称,此时一定要重新指定该字段的类型


    第二章:
    1、数据类型:
    整型:
    TINYINT -2^7->2^7-1
    SMALLINT -2^15->2^15-1
    MEDIUMINT -2^23->2^23-1
    INT -2^31->2^31-1
    BIGINT -2^63->2^63-1

    浮点型:
    FLOAT[(M,D)] m代表总位数,d代表小数点后位数
    DOUBLE[(M,D)]

    时间日期型:(了解)
    YEAR 1个字节
    TIME 3
    DATE 3
    DATETIME 8
    TIMESTAMP 4

    字符型:
    CHAR(M) 0<=M<=255
    VARCHAR(M)
    TINYTEXT
    TEXT
    MEDIUMTEXT
    LONGTEXT
    ENUM('value1,'value2'...)
    SET('value1','value2',,,)

    2、数据表的操作
    打开数据库:
    USE test(数据库名称)
     
    创建数据表:
    CREATE TABLE (IF NOT EXISTS) table_name<数据表名字>(column_name<根据项目大小确定的列名>data_type<数据类型>,..)

    mysql>USE TEST;
    >CREATE TABLE tb1(
    >username VARCHAR(20),
    >age TINYINT UNSIGNED,<unsigned意思是不要负数>
    >salary FLOAT(8,2) UNSIGNED <float(8,2)的意思是总共有8位数,其中小数点后有2位)>
    >);


    查看数据表列表
    SHOW TABLES FROM test

    查看数据表结构
    SHOW COLUMNS FROM TB1;

    插入记录INSERT
    INSERT [INTO] tb1_name [(col_name,,,)] VALUES(val,,,)
    INSERT TB1 (username ,salary) VALUES ('tom',26,919.3);
    插入的也可以是算式比如:33-2 或者函数式:MD5('342')

    也可以一次插入多条记录,记录间用,分开就行。


    记录查找SELECT
    SELECT * FROM TB1_NAME


    3、空值与非空


    NULL 字段值可以为空  NOT NULL 字段禁止为空

    创建表,设定某些量空与非空
    >CREATE TABLE TB2(
    >username VARCHAR(20) NOT NULL,
    >age TINYINT UNSIGNED NULL,
    >);

    >INSERT TB2 VALUES(NULL,20);

    <将报错说username不可为空>


    4、自动编号(AUTO_INCREMENT)不能用char类型


    自动编号,且需与主键组合使用
    默认情况下,起始值为1,每次的增量为1;



    5、主键约束(PRIMARY KEY)


    每张数据表只存在一个主键
    主键保证记录的唯一性
    主键自动为not null

    多个字段联合主键:
    PRIMARY KEY(username,age);

    >CREATE TABLE TB2(
    >id SMALLINT UNSIGNED  PRIMARY KEY AUTO_INCREMENT,

    AUTO_INCREMENT(自动递增)必须和PRIMARY KRY一起使用,而PRIMARY KEY则不一定要和AUTO_INCREMENT一起使用

    >username VARCHAR(20) NOT NULL,
    >);

    >SHOW COLUMNS FROM TB3;



    6、唯一约束(UNIQUE KEY)


    唯一约束
    唯一约束可以保证记录的唯一性
    唯一约束的字段可以为NULL
    每张数据表可以存在多个唯一约束
    与主键的区别:一张数据表只能有一个主键,而UNIQUE KEY可以有多个可以NULL
    >CREATE TABLE TB4(
    >id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<自动编号字段>
    >username VARCHAR(20) NOT NULL UNIQUE KEY,
    >age TINYINT UNSIGNED
    >);


    插入记录:INSERT TB4(username,age) VALUES('TOM',23);
    当再次写入同样的记录时,将提示错误,因为username用了unique约束。可想而知这个约束在数据表里可以有多个。

    7、默认约束(DEFAULT)



    默认值
    当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
    >CREATE TABLE TB5(
    >id SAMLLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    >username VARCHAR(20) NOT NULL UNIQUE KEY,
    >sex ENUM('1','2','3') DEFAULT '3'
    >);


    验证:
    INSERT TB5(username)VALUES('TOM');
    将发现自动给sex赋值3了。

    8、外键约束


    要求:
    表与表之间的链接
    父表和子表必须使用相同的储存引擎(InnoDB),而禁止使用临时表:
    外键列和参照列必须具有相识的数据类型。其中数字的长度或是否有符号位必须相同;而字符     的长度则可以不同
    外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

    CREATE TABLE provinces(
    id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    pname VARCHAR(20) NOT NULL
    );

    查看数据表的引擎:show create table provinces;
    CREATE TABLE users(
    id SMALLINT UNSIGNED PRIMARU KEY AUTO_INCREMENT,
    username VARCHAR(10) NOT NULL,
    //添加省份的话可以不用添加字段,只要添加关系表省份的编号就行
    pid SMALLINT UNSIGNED, 
    FOREIGN KEY(pid)REFERENCES provinces(id)
    );


    查看索引:SHOW INDEXES FROM provincesG;
    SHOW INDEXES FROM usersG;

    外键约束的参数:

    CASCADE:从父表删除或更新且自动删除或更新字表中匹配的行
    SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL,如果使用该选项,必须保证 子表列没有指定NOT NULL
    TESTRICT(约束、限制):拒绝对父表的删除或更新操作
    NO ACTION:标准的SQL的关键字,在MySQL中RESTRICT相同。


    为自动编号的字段赋值

    可以书写成default 或者null
    创建表:
    CREATE TABLE users(
    id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    password VARCHAR(32) NOT NULL DEFAULT 123,
    age TINYINT UNSIGNED NOT NULL,
    sex BOOLEAN
    );

    插入记录:
    INSERT users VALUES(NULL,'Jack',159357,20,1);


    9、





  • 相关阅读:
    MATLAB2019a安装
    每日日报6
    HTML表格
    HTML常见表单元素
    HTML特殊符号
    CTF-WEB:攻防世界-bug(综合应用)
    CTF-WEB:文件上传和 webshell
    CTF-WEB:BurpSuite 工具应用
    CTF-WEB:后台扫描与备份泄露
    CTF-WEB:PHP 伪协议
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4665424.html
Copyright © 2020-2023  润新知