美文网首页后端
mysql基本操作

mysql基本操作

作者: vinson_sheep | 来源:发表于2017-05-25 13:52 被阅读0次

    创建数据库:create database xxx;
    列出数据库:show databases;
    选择数据库:use xxx;

    创建数据表:create table xxx(id,state,population);

    create table IF NOT EXISTS states (Id not null primary key auto_increment,state char(25),population int(9));

    插入数据:

    insert into xxx (id,state,population) values(null,'alabama','4822023');

    创建更多记录:

    insert into states(id,state,population) values (null,'xxx','xxx'),(null,'xxx','xxx');

    更新表格:

    UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

    查看表所有的列:

    SHOW FULL COLUMNS from person;

    在原有表格上添加新的表格:

    注意这里创建的新表格将旧表格归为自己一部分,附在右侧```

    在旧表格基础上新建空表格:

    CREATE TABLE `people` ( `peopleid` smallint(6) NOT NULL AUTO_INCREMENT, `firstname` char(50) NOT NULL, `lastname` char(50) NOT NULL, `age` smallint(6) NOT NULL, `townid` smallint(6) NOT NULL, PRIMARY KEY (`peopleid`), UNIQUE KEY `unique_fname_lname`(`firstname`,`lastname`), KEY `fname_lname_age` (`firstname`,`lastname`,`age`) ) ;

    删除表格:

    或者是
    DROP TABLE IF EXISTS XXX;```

    删除行:

    删除某行
    DELETE FROM Person WHERE LastName = 'Wilson' 
    删除整个列表行
    DELETE* FROM table_name```
    
    输出全部:
    >```select* FROM database``
    
    设置AUTO_INCREMENT的起始值
    >```ALTER TABLE Persons AUTO_INCREMENT=100```
    
    进行高级命令查询:
    >```SELECT state,population FROM database ORDERBY population DESC;#这里DESC是递减顺序```
    
    返回唯一的的列表:
    >```SELECT DISTINCT Company FROM ORDERS```
    
    排序:
    >```SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC#Company逆顺序排列,OrderNumber升序排列```
    
    限制输出数量:
    >```SELECT* FROM table_name LIMIT 5```
    
    LIKE指定模式
    >```SELECT * FROM Persons WHERE City LIKE '%lon%' 选出包含lon字符的人```
    
    通配符(必须配合着LIKE来用)
    
    1. %替代一个或多个字符
    2. _仅替代一个字符
    3. [charlist]字符列中的任何单一字符
    4. [^charlist]或者[!charlist]不在字符列中的任何单一字符
    
    UNION用来合并多个SELECT结果集:
    

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    注意,UNION ALL会返回所有值,可能重复

    
    SELECT INTO可以复制数据
    

    SELECT LastName,Firstname
    INTO Persons_backup
    FROM Persons
    WHERE City='Beijing'
    这里顺便是select - into - from

    
    isnull()函数返回默认值
    

    SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
    FROM Products

    
    判断空与非空is null/is not null
    

    SELECT LastName,FirstName,Address FROM Persons
    WHERE Address IS NOT NULL

    
    基本运算符:
    

    =等于

    <>不等于#有些sql可以写成!=
    BETWEEM在某个范围内
    LINK搜索某种模式

    
    使用WHERE语句
    >```SELECT * FROM Persons WHERE City='Beijing'```
    
    CASE WHEN语句
    

    having sum(case when b.score>=60 then 0 else 1 end)>=2

    
    Constraints约束:
    

    NOT NULL
    UNIQUE
    PRIMARY KEY
    FOREIGN KEY
    CHECK
    DEFAULT

    
    CHECK限制范围
    

    ALTER TABLE Persons
    ADD CHECK (Id_P>0)

    
    DEFAULT添加默认值
    

    CREATE TABLE Persons
    (
    City varchar(255) DEFAULT 'Sandnes'
    )
    另外添加或者删除
    ALTER TABLE Persons
    ALTER City SET DEFAULT 'SANDNES' /// DROP DEFAULT

    
    Create index添加索引
    

    理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。
    CREATE INDEX PersonIndex
    ON Person (LastName, FirstName)
    删除
    ALTER TABLE table_name DROP INDEX index_name

    
    内建常用函数
    http://www.jb51.net/article/40179.htm
    
    以下是常用的数据类型:
    
    1. CHAR(length)固定长度字符串
    2. VARCHAR(length) 可变长度字符串
    3. TEXT 最大长度64KB的可变字符串
    4. DECIMAL(length,dec) 浮点数,前面是是位数,后面是小数位。
    5. DATE时期值,年月日
    6. TIME时间值,时分秒
    7. RNUM('value1','value2'.....)枚举法列表```

    相关文章

      网友评论

        本文标题:mysql基本操作

        本文链接:https://www.haomeiwen.com/subject/wtbpxxtx.html