zoukankan      html  css  js  c++  java
  • MySQL数据库基础

    1,基本概念

    • 数据库: 数据库是一些关联表的集合。
    • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
    • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
    • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
    • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
    • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
    • 外键:外键用于关联两个表。
    • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
    • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
    • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

    2,基本查询常用指令

        >show databases;    #显示数据库管理系统的数据库列表,分号是必须的

        >use mysql;    #选择一个数据库用,数据库名字叫mysql

        >show tables;    #显示数据库的所有数据表,

        >show columns from user;    #显示当前数据库下某个数据表,显示的信息包括:数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息

        >show index from user;    #显示数据表的详细信息

        >show table status from mysql like 'user';    #显示mysql数据库下user数据表的性能和统计信息,当然,like以后的信息可以省略。

    3,python中的mysql:

        首先需要安装python中的数据库模块,叫MySQLdb,linux执行pip install mysql-python (在相关依赖都搭建好了的情况下),然而并没有安装成功,先一放,回头再学。

    4,连接  数据库相关操作

        >mysql -u root -p    #mysql进程开启的情况下登录到mysql,linux状态下链接数据库,退出用exit

        >cd /usr/bin 然后>./mysqld_safe &     #启动mysql服务器

        >cd /usr/bin 然后>./mysqladmin -u root -p shutdown    #关闭mysql服务器

        > mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP    #用grant添加一个用户,

                   -> ON TUTPRIALS.*    #用户添加在了tutprials数据库中,权限是Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv。
                   -> TO 'daqing'@'localhost'    #用户名叫daqing
                   -> IDENTIFIED BY '1234abcd';    #用户密码是1234abcd

    5,数据库内部操作

        >create database test1;    #创建一个名字叫test1的数据库。

        >drop  database test1;     #表示删除数据库test1

        >select database();    #查看当前使用的是哪个数据库;

        >use test1;    #进入数据库test1,数据库创建的时候默认是空的

        >create table test1.1 (name varchar(20));    #创建数据表test1.1,参数随意,基本格式:create table+表名+(参数)如:create table person(`name` char(20),`age` int,`high` int); 注意字段名需要加反引号,和值之间加空格,字段之间加逗号,指定 长度的话,在格式int,char等后面加括号,括号里是长度。

        >drop table test1.1;    #删除数据表test1.1,注意英文句号在此处有点特殊,因为test1.1在show tables的时候显示为1,因为.具有表示结构的作用,test1.1表示数据库test1下面的数据表1。

        >discribe testA;    #简写作desc,查看数据表testA的结构,查看之前已经创建:create table testA(`id`int(4),`name`char(20),`age` int(4));

        >insert into testA values(1,'daqing',20)    #增,对数据表插入一个字段,格式:insert into 表名称 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......); 

        >select id,name,age from testA;    #查,从testA表中查看id,name,age的内容。结果如下

       

        > select count(*) from testA;    #查,count(*)表示返回有多少行。

        >select * from testA;    #查,查看testA表中所有的数据。

        >update testA set age=22 where id=1;    #改,在testA数据表中更改age字段,把id等于1的字段的age一项改成22。基本格式:update 表名称 set 字段名=“新值” where 表达式;

        >delete from testA where id=2;    #删,把testA表中id等于2的一行删除。

        >truncate table testA;    #删,清空数据表testA。

        

    6,用户相关操作*

    注:以下命令均需先以root身份登录mysql:mysql -uroot -p 
    1.添加新用户 
    (1)创建新用户:> insert into mysql.user(Host,User,Password) values("localhost","user1",password("password1")); 
    (2)为用户分配权限: 
                设置用户可以在本地访问mysql:grant all privileges on *.* to username@localhost identified by "password" ; 
                设置用户只能访问指定数据库:grant all privileges on 数据库名.* to username@localhost identified by "password" ; 
    (3)刷新系统权限表:>flush privileges; 
    2.查看MySql当前所有的用户:>SELECT DISTINCT User FROM mysql.user; 
    3.删除用户及其数据字典中包含的数据:>drop user 'xbb'@'localhost';

  • 相关阅读:
    XtraGrid回车添加行,
    此行属于此表解决方案
    实践重于理论——创建一个监控程序探测WCF的并发处理机制
    使用SerialPort类设计串口通讯程序 (VS2005)[转载]
    WCF实例上下文基本内容概述
    DotNetBar教程
    MSChart使用做折线图饼图
    WCF Data Contract之KnownType
    WCF学习笔记之 搭建WCF技术知识框架
    C# SerialPort运行方式
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/9446306.html
Copyright © 2011-2022 走看看