zoukankan      html  css  js  c++  java
  • mysql常见命令操作

                        MySql常用命令总结
    1:使用SHOW语句找出在服务器上当前存在什么数据库:(大小写一样)
    mysql> SHOW DATABASES;        (展示数据库时候用databases)
    2:2、创建一个数据库MYSQLDATA   (展示一个数据时候用database)
      创建带字符编码的数据库create database mydb  character set utf8;(注意mysql中是utf8;不是utf-8)
    mysql> CREATE DATABASE MYSQLDATA; (删除用drop database dbname)   
    3:选择你所创建的数据库
    mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!,当然没有;也提示成功)
    4:查看现在的数据库中存在什么表
    mysql> SHOW TABLES;
    5:创建一个数据库表
    mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
    6:显示表的结构:
    mysql> DESCRIBE(DESC) MYTABLE;
    7:往表中加入记录
    mysql> insert into MYTABLE values (”hyq”,”M”);
    8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
    mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
    9:导入.sql文件命令(例如D:/mysql.sql)
    mysql>use database;
    mysql>source d:/mysql.sql;
    10:删除表
    mysql>drop TABLE MYTABLE;
    11:清空表
    mysql>delete from MYTABLE;
    12:更新表中数据
    mysql>update MYTABLE set sex=”man” where name=’jack’;
    
    --------------------------------------------
    ----------------字段操作----------------------
    
    添加字段:alter table tablename add column age int;
    删除一个字段:alter table tablename DROP COLUMN new2;
    插入一个字段默认为:alter table tablename add column age int default 0;
    修改一个字段的类型 alter table tablename MODIFY new1 VARCHAR(10);  
    修改一个字段的名称,此时一定要重新指定该字段的类型 alter table user CHANGE new1 new4 int; 
    添加主键: alter table tablename add primary key(col)
    删除主键: alter table tablename drop primary key(col)
    
    
    ----------------自增长---------------
    CREATE TABLE class
    (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(15) NOT NULL
    )AUTO_INCREMENT = 100;从100开始
     
    可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。
    可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值。
    插入数据insert into text values(null,'jack');要用null
    没用AUTO_INCREMENT = 100;表示默认从1开始
    
    
    
    
    ----------------函数-------------------------
    
    select now(),current_date()
    select * from tablename where field1 like ’%value%’ --查找特定格式的数据,注意中间是<%%>
    求和:select sum(field1) as sumvalue from tablename
    平均:select avg(field1) as avgvalue from tablename
    最大:select max(field1) as maxvalue from tablename
    最小:select min(field1) as minvalue from tablename
    排序:select * from tablename order by field1,field2 [desc]
    选择前十条记录:select * from tablename limit 10;   (注意不要用top)
    分页:select * from tablename limit 2,4         ( 即取出第3条至第6条,4条记录)
    select ASCII('A');  //对应65
    返回二进制值N的一个字符串表示select bin(8);//8的二进制位1000
    
    
    ------------------------------------
    导入.sql文件命令(例如D:/daoru.sql)所以可以直接在文本中写,在导入cmd中执行。。
    create table daoru
    (
    name varchar(20),
    password varchar(20)
    );
    insert into daoru values('JACK','123');
    执行mysql>source d:/mysql.sql;
    ----------------------------
    
    
    
    
    //补充
    查询
    过滤表中的重复数据
    select distinct username from tablename(过滤掉重名的)
    查询数学成绩分数为100.90,44分的人
    select * from student where math in(100,90,44)
    //商品分类
    select username,sum(math) from tablename group by username(根据一样的username归为一组)
    where后面不能跟合计函数,要用having
    select username,sum(math) from tablename group by username having sum(math)>200
    
    创建带字符编码的数据库create database mydb  character 
    set utf8;(注意mysql中是utf8;不是utf-8)
    查看数据库的信息show create database mydb(可以看数据库编码等信息)
    如果数据库语句创建成功了,怎么添加编码为utf8
    alter database mydb character set utf8;
    重命名表名
    alter table aa change column name username varchar(20)(name改为username)
    备份数据库表中的数据
    mysqldump -u用户名 -p密码 数据库名 >文件名.sql(备份带那里window命令)
    恢复数据库
    source 文件名.sql
    
    //演示
    备份
    mysqldump -uroot -p123 mydb >D://mydb.sql  (保存带了D:mysql.sql中)(数据库到文件)
    恢复(先删掉数据库,在恢复)
    要恢复库,要先创建库,因为只能恢复数据,不能恢复库
    mysql -uroot -p123 mydb <D://mydb.sql  (文件到数据库)
    
    
    
    
    //数据库约束,主键,自增长,非空,不重复,外键
    create table a
    (
      name varchar(20) not null, //非空
      password int unique        //不能重复
    );
    
    //外键约束
    比如(老公,老婆关系管理系统)
    老公表
    id   name
    1    jack 
    2    xilin 
    
    老婆表
    id   name  husbandId(这列叫外键,该值来自于外面的数据,一定要加外键约束)
    1    lucy   2        (外键数据来自老公表)
    2    mily   1 
    
    create table husband
    (
       id int primary key auto_increment,
       name varchar(20)unique
    );
      
    create table wife
    (
      id int primary key auto_increment,
      name varchar(20)unique,
      husbandId int,
      constraint husbandId_FK foreign key(husbandId) references husband(id)
    );
    //constraint (约束名)foreign key(约束那个)references(参考那个表的那个值)
    
    
    //数据库中表的设计
    -----------一对多,多对一----------------------
    部门关系管理系统(一个部门对于多个员工,多个员工对于一个部门)
    //部门                            员工
    Department                       Employee
    String id;                       String id, 
    String name,                     String name,double price;
    Set employee=new HashSet();      Department department;
    一对多的设计,那么部门数据如何往数据库里面存呢?
    Department d=new Department();
    d.setId(1);
    d.setname("开发部");
    
    Employee e=new Employee();
    e.setId(1);
    e.setName("xiaoming");         //部门对象
    e.setPrice(100);
    
    Employee e1=new Employee();
    e1.setId(2);                   //员工数据
    e1.setName("xiaoge");
    e1.setPrice(200);
    
    d.add(e1);
    d.add(e2);                   //把员工数据增加到部门
    
    ----------------------思路----------------------
    
    设计表的时候先不要考虑引用关系,设计基本表,在一对多的多的方那加入外键约束就行
    department表          
    id   name           
    1   开发部
    
     Employee表
    id    name        price department_id
    1  xiaoming         100       1
    2  xiaoge            200       1
    
    ------------多对多对象------------------------- 
    教学管理系统
    Teacher对象
    String id,
    String name;
    String price,
    Set student=new HashSet();//老师保存学生信息
    
    Student对象
    String id,
    String name;
    Set teacher=new HashSet();//学生保存老师信息
    
    //先不要考虑引用关系,先设计基本信息表
    Teacher表
    id    name    price
    1     jack    3244
    
    Student表
    id    name
    1     lucy
    2     mark 
    ---------设计中介表-Teacher_Student---------
    Teacher_Student 表
    teacher_id(外键,来自老师id)    student_id(外键,来自学生id)
    1                                  1
    1                                  2
    
    -----------------------------------------------
    create table teacher
    (
      id int primary key,
      name varchar(20),
      price int 
    );
    create table student
    (
      id int primary key,
      name varchar(20)
    );
    create table teacher_student
    (
      teacher_id int,
      student_id int,
      primary key(teacher_id,student_id), 
      constraint teacher_id_FK foreign key(teacher_id) references teacher(id),
      constraint student_id_FK foreign key(student_id) references student(id)
      
    );
    create table teacher_student
    (
      teacher_id int,
      student_id int,
      primary key(teacher_id,student_id) //联合主键
      constraint teacher_id_FK foreign key(teacher_id) references teacher(id)//外键约束
      constraint student_id_FK foreign key(student_id) references student(id)//外键约束
      
    )
    
    
    ----------一对一关系,必须有主从关系(人可以无身份证,身份证不能没人)-----------
    身份证管理系统
    person类
    String id;
    String name
    IdCard idcard;
    
    IdCard类
    String id;
    String city;
    person p;
    
    person p=new person();
    p.setId(1);
    p.setName("lin");
    
    IdCard c=new IdCard();
    c.setId(1);
    c.setCity("nanjing");
    
    p.setCard(c);
    ----------------------------
    person表
    id    name
    1     jack
    2     lucy
    IdCard表
    id     city     person_id(外键约束,unique,not null约束),但是person表已经是unique,not null,这变设计外键就行了
    1001  nanjing     1  
    1021   beijing    2
    
    create table person
    (
      id int primary key,
      name varchar(20)
    );
    create table idcard
    (
      
    id int primary key,
      city varchar(10),
     constraint id_FK foreign key(id)references person(id)
    );
    
    
    -----------------------------
    自连接的表,可以实现无限循环表(京东分类表:如电器类->电脑->平板。。)
    person p
    id   name   parent_id
    1    林大大
    2    林中中    1
    3    林小小    2   (家族遗传)
    create table myperson
    (
      id int primary key,
      name varchar(20),
      parent_id int,
      constraint parent_id_FK foreign key(parent_id)references myperson(id)
    )
    ---------级联删除-------------------
    create database department_employee character set utf8;
    use department_employee;
    create table department
    ( 
    
       id int primary key,
       name varchar(20)
    );
    create table employee
    (
      id int primary key,
      name varchar(20),
      salary double,
      employee_id int,
      constraint empoyee_id_FK foreign key(employee_id)references department(id)on delete set null 
     //如果是on delete set null的话,删除department主表的时候,从表employee_id置为空
     //如果是on delete cascade,删除主表的时候,从表也删除(要小心)
    );
    

      

  • 相关阅读:
    ActiveMQ 5.15.12(2020年3月9日)
    Vert.x WebClient WebClientOptions
    第三方App接入微信登录
    Android Sutdio自带的代码检查工具analyze的使用
    WIN7系统有些文本乱码怎么办
    Visual Studio 打开程序提示仅我的代码怎么办
    WIN10平板 总是提示你需要管理员权限怎么办
    WIN10平板 如何修改网络IP地址为固定
    WIN10平板 如何设置不允许切换竖屏
    WIN10平板 如何关闭自动更新
  • 原文地址:https://www.cnblogs.com/linhong/p/4204629.html
Copyright © 2011-2022 走看看