zoukankan      html  css  js  c++  java
  • 数据库概念 MySQL语法

    数据库概念

    将保存的数据部分,存到一个公共的地方,所有的用户涉及到数据相关都必须来这个公共地方查找

    MySQL

    本质就是一款基于网络通信的应用软件,任何基于网络通信的软件底层都是socket

    可以把MySQL看成是一款支持远程操作文件的软件

    库 >>> 文件夹

    表 >>> 文件

    记录 >>> 文件内一行行的数据叫做一条条的记录

    表头 : 就是表格的第一行数据

    字段 : 字段名 + 字段类型

    服务端 mysqld

    基于socket通信

    收发信息

    SQL语句(是一个公共的标准)

    客户端 mysql

    基于socket通信

    收发信息

    SQL语句

    ps:MySQL不单单支持MySQL的客户端操作,也支持其他编程语言直接操作 python,java,c++,php 语法都不一样

    DBMS:数据库管理系统

    关系型数据库:数据与数据之间可以有关联和限制的,关系型数据库通常都是表结构,用关系数据库第一步是确定表结构

    ps:MySQL,oracle,sqlite,db2,sql,server

    非关系数据库:通常是一K,V键值对的形式存储数据

    ps:redis,mongodb(文档型数据库,非常接近关系型的非关系型数据),memcache

    语法

    服务端 mysqld

    客户端 mysql

    sql语句中是以分好结束的,不敲分号默认你没有输入完,客户端还会让你继续输入

    客户端登录 mysql -h 127.0.0.1 -p 3306 -uroot -p / mysql -uroot -p

    客户端退出 exit; / quit;

    将mysqld制作成系统服务 mysqld --install

     

    删除原来的服务
    mysqld --remove mysql
    mysql的根目录下:
    你需要清空data目录。
    如果没有data目录,请自行创建一个空目录,起名为data
    然后cd到bin目录下:
    mysqld --initialize-insecure --user=mysql
    然后执行:
    mysqld --install mysql --defaults-file=D:developmysql57my.ini
    或者 : mysqld --install
    再执行:
    net start mysql
    服务问题

     

    查看某个进程 tasklist |findstr 名称

    杀死进程 taskkill /F /PID 进程号

    修改密码:

    1.没有密码情况 mysqladmin -uroot -p password 新密码

    2.有密码情况 mysqldadmin -uroot -p旧密码 password 新密码

    破解密码:

    先将已启动的服务端停掉

    1.跳过用户名密码验证功能(授权表)启动服务端 mysqld --skip-grant-tables

    2.修改管理员用户对应的密码 updata mysql.user set password=password(新密码) where user='root' and host='localhost';

    3.关闭当前服务端 重新以验证用户密码的方式启动

    4.正常以用户名密码的方式连接mysql服务端

    查看mysql服务端简单配置 s

    配置文件:

    mysql自带的配置文件不要修改,但自己可以新建一个配置文件 my.ini

    mysql服务端在启动时会自动加载你的my.ini配置文件的内配置

    修改完配置文件会后需要先将服务端停止 重新启动 才能生效

     

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    [client]
    default-character-set=utf8
    
    [mysql]
    user='root'
    password=密码
    default-character-set=utf8

    数据的基本操作语法

    库(类似文件夹)

    create database 文件名;

    show databases; 查所有库

    show create database 库名; 查指定的库

    alter database 库名 charset='gbk'; 修改编码

    drop database 库名; 删库(慎用!!!!!!!)

    在创建表的时候,需要先指定库(文件创建在文件夹内)

    指定库 use 库名

    查看当前所在库 select database();

    create table 表名(字段名 字段类型,字段名 字段类型);

    show tables; 查看所在库中的所有表

    show create table 表名; 指定表查看

    desc 表名 <==> describe 表名; 指定查看表中的内容

    alter table 表名 modify 字段 字段类型;

    drop table 表名;

    记录(数据)

    先创建一个库或者指定一个已存在的库,切换到该库下,创建表,在操作记录

    create database 库名;

    create table 表名(字段 字段类型);

    insert into 表名 values(对应字段的内容); 插入单挑数据

    insert into 表名 values(对应字段的内容1),(对应字段的内容2),...; 插入多条数据

    select * from 表名; 查询指定表中的所有字段信息

    select 字段 from 表名; 查询指定表中的指定字段信息

    select 字段1,字段2 from 表名 where 字段1=信息 or 字段2=信息; 带有筛选条件的字段信息

    update 表名 set 字段=新信息 where 字段=信息; 修改数据的一个字段信息

    update 表名 set 字段=新信息,字段=新信息 where 字段=信息; 修改数据的多个字段

    delete from 表名 where id=1; 指定删复符合条件的数据

    delete from 表名; 删除表中的全部数据

     

     

    修改表

    # MySQL 对大小写不敏感
    语法:
    1.修改表名
        alter table 表名 rename 新表名;
    2.增加字段
        alter table 表名
                        add 字段名 数据类型[约束条件...],
                        add 字段名 数据类型[约束条件...];
        alter table 表名
                        add 字段名 数据类型[约束条件...] first; # 字段加在开头
        alter table 表名
                        add 字段名 数量类型[约束条件...] after 字段名; # 加在指定字段后面
    3.删除字段
        alter table 表名
                        drop 字段名;
    4.修改字段  # modify 只能改字段数据类型完整约束,不能改字段名,但change可以
        alter table 表名 
                        modify 字段名 数据类型[约束条件];
        alter table 表名
                        change 旧字段名 新字段名 数据类型[约束条件];

    复制表

    # 查询语句执行结果也是一张表,可以看成虚拟表
    # 复制表结构+记录 (主键,外键,索引不会被复制)
    create table 新表名 select * from 被复制的表名;
    ​
    # 只复制结构
    select * from 表名 where 1=2;
    create table 新表名 select * from 被复制的表名 where 1=2;
    create table 表名 like employees;

     

     

     

     

     

  • 相关阅读:
    BUG漏测的原因总结,以及如何处理
    费用流
    拉格朗日插值
    数论问题整理
    计数问题
    POJ 1741 Tree
    bzoj 2820: YY的GCD
    luogu P3690 【模板】Link Cut Tree (动态树)
    bzoj 1036: [ZJOI2008]树的统计Count
    bzoj 3282: Tree
  • 原文地址:https://www.cnblogs.com/waller/p/11365887.html
Copyright © 2011-2022 走看看